Laravel API — AngularJS: ошибка Access-Control-Allow-Origin

Здравствуйте, stackoverflowers!

У меня трудное время, чтобы Angular и Laravel работали вместе. Я хочу использовать Angular отдельно от Laravel. У меня есть настройки 2 домена app.domain.com и api.domain.com, используя forge. Когда я хочу отправить запросы с моего app.domain.com или localhost на мой api.domain.com, я получаю сообщение об ошибке «Access-Control-Allow-Origin» (= CORS?).

Ошибка:

XMLHttpRequest не может загрузить http://api.domain.com/api/authenticate. Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin». ПроисхождениеHTTP: // локальный: 8888Поэтому не допускается доступ.

Я гуглил часами, но не могу понять. Я уже пытался добавить промежуточное программное обеспечение CORS в Laravel, но это не имеет никакого эффекта.

{
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
->header('Access-Control-Max-Age', '1000')
->header('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With');
}

Ошибка все еще показывается. Странная часть в том, что запрос get разрешен, только почтовые запросы по какой-то причине запрещены.

введите описание изображения здесь

Обычно я использую APACHE в качестве сервера, но Laravel Forge использует nginx. Есть ли что-то связанное с nginx?

Мой конфигурационный файл nginx:

server {
listen 80;
server_name api.domain.be;
root /home/forge/api.domain.be/public;

# FORGE SSL (DO NOT REMOVE!)
# ssl_certificate;
# ssl_certificate_key;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

index index.html index.htm index.php;

charset utf-8;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt  { access_log off; log_not_found off; }

access_log off;
error_log  /var/log/nginx/api.onlinevaten.be-error.log error;

error_page 404 /index.php;

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}

}

Может кто-нибудь мне помочь? Было бы здорово!

2

Решение

Попробуйте это, у меня получилось

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token');
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]