@id____0_0

Ошибка от CORS No 'Access-Control-Allow-Origin' header?

У меня на openserver'e на компьютере - всё работает. Орендовал VPS, впервые установил не апач, а nginx, и сталкиваюсь постоянно с проблемами. В данный момент - ошибка Access to XMLHttpRequest at 'darkshaper.com:778/socket.io/?EIO=3&transport=poll...' from origin 'darkshaper.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Я как только не пытался гуглить, и какие варианты только не пробовал вставлять в этот конченый конфиг nginx - у меня ничего не получилось. Я видимо не понял до конца в каком конкретном месте у меня проблема. В голове наверное. Буду рад помощи. Не у кого просто даже спросить..

Код nginx:
server {
    listen 80;
    server_name  darkshaper.com;
    charset utf-8;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /var/www/html;
        index  index.php index.html;
        if (!-e $request_filename){
                rewrite ^(.*)$ /$1.php;
        }

        #error_page 404 /404.php;
        #error_page 403 /403.php;
    }

    location ~ \.php$ {
        root   /var/www/html;
        index index.php;
        fastcgi_pass localhost:9000;
        fastcgi_param SCRIPT_FILENAME
        $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ .(htaccess|htpasswd|ini|phps|fla|psd|log|sh|txt)$ {
        deny all;
    }

     location ~ ^/(node|socket\.io) {
        proxy_pass http://localhost:778;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    autoindex off;

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }


Код сервера:

var app = require('express')();
var cors = require('cors');
app.use(function (req, res, next) {

    // Website you wish to allow to connect
    res.setHeader('Access-Control-Allow-Origin', 'http://localhost:778');
    //
    //         // Request methods you wish to allow
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    //
    //                 // Request headers you wish to allow
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
    //
    //                         // Set to true if you need the website to include cookies in the requests sent
    //                             // to the API (e.g. in case you use sessions)
    res.setHeader('Access-Control-Allow-Credentials', true);
    //
    //                                     // Pass to next layer of middleware
    next();
   });
app.get('/Game', function(req, res){
  res.sendFile('/var/www/html/Game/index.html');
});
var server  = require('http').Server(app);
var io      = require('socket.io')(server);
var fs      = require('fs');

server.listen(778);


Код клиента в браузере:
//let socket = io.connect("http://darkshaper.com:778");
let socket = io.connect();
  • Вопрос задан
  • 694 просмотра
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Порт уберите к вашим сокетам - и всё заработает. Он совершенно лишний в данном случае. Проксируйте его через тот же нгинкс, просто в отдельном локейшене.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы