У меня есть два локальных домена (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>