CORS - Laravel на UBuntu 18.04 через AJAX - PullRequest
0 голосов
/ 25 марта 2019

У меня есть два локальных домена (domainone.io и domaintwo.io), и я хотел бы разрешить CORS между ними.

На сервере я разрешил это:

server {
    listen    80;
    listen [::]:80;
    server_name domainone.io;
    root /media/....../domain1/public;
    index index.php index.html;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        # With php7.0-cgi alone:
        #fastcgi_pass 127.0.0.1:9000;
        # With php7.0-fpm:
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }

    location / {
        add_header 'Access-Control-Allow-Origin' 'domaintwo.io';
        add_header 'Access-Control-Allow-Methods' 'POST';
        add_header 'Access-Control-Allow-Methods' 'Content-Type';
        try_files $uri $uri/ /index.php?$query_string;
    }
}

А на втором домене:

server {
    listen    80;
    listen [::]:80;
    server_name domaintwo.io;
    root /media/....../domain2/public;
    index index.php index.html;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        # With php7.0-cgi alone:
        #fastcgi_pass 127.0.0.1:9000;
        # With php7.0-fpm:
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }

    location / {
        add_header 'Access-Control-Allow-Origin' 'domainone.io';
        add_header 'Access-Control-Allow-Methods' 'POST';
        add_header 'Access-Control-Allow-Methods' 'Content-Type';
        try_files $uri $uri/ /index.php?$query_string;
    }
}

ВОПРОС:

Когда я выполняю ajax-вызов из любого домена, я все равно получаю сообщение об ошибке CORS not enabled, а именно:

Запрос на перекрестное происхождение заблокирован: одна и та же политика происхождения запрещает чтение удаленный ресурс на http://domainone.io/test. (причина: CORS отсутствует заголовок ‘Access-Control-Allow-Origin’)

Мой JS - это что-то вроде:

<script>
$(document).on('click', '.btn', function() {
  var someX = "lol";
  var token  = $('[name="csrf-token"]').prop("content");
  $.ajax({
    url: 'http://domaintwo.io/test',
    type: 'POST',
    data: {_token: token, test:someX },
    dataType: 'JSON',
    success: function(response) {
      alert(JSON.stringify(response));
    },
    error: function() {

    }
  });
});
</script>

1 Ответ

1 голос
/ 25 марта 2019

Думаю, установка laravel-cors решит вашу проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...