Laravel API - AngularJS: 访问控制允许来源错误
Laravel API - AngularJS: Access-Control-Allow-Origin error
你好Whosebugers!
我很难让 Angular 和 Laravel 一起工作。我想将 Angular 与 Laravel 分开使用。我使用 forge 设置了 2 个域 app.domain.com 和 api.domain.com。当我想从我的 app.domain.com 或本地主机向我的 api.domain.com 发送请求时,我收到了 'Access-Control-Allow-Origin' (=CORS?) 错误。
错误:
XMLHttpRequest 无法加载 http://api.domain.com/api/authenticate. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost: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');
}
错误仍在显示。奇怪的是允许获取请求,由于某种原因只允许 post 请求。
通常我使用 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;
}
}
谁能帮帮我?会很棒!
试试这个,对我来说效果很好
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');
你好Whosebugers!
我很难让 Angular 和 Laravel 一起工作。我想将 Angular 与 Laravel 分开使用。我使用 forge 设置了 2 个域 app.domain.com 和 api.domain.com。当我想从我的 app.domain.com 或本地主机向我的 api.domain.com 发送请求时,我收到了 'Access-Control-Allow-Origin' (=CORS?) 错误。
错误:
XMLHttpRequest 无法加载 http://api.domain.com/api/authenticate. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost: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');
}
错误仍在显示。奇怪的是允许获取请求,由于某种原因只允许 post 请求。
通常我使用 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;
}
}
谁能帮帮我?会很棒!
试试这个,对我来说效果很好
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');