我正在尝试使用Laravel护照进行身份验证,将带有标头的请求发送到我的Laravel 5.3 API。返回的标题:
405(不允许的方法)
对预检请求的响应 没有通过访问控制检查:没有'Access-Control-Allow-Origin' 标头出现在请求的资源上。起源 因此,“http://localhost:4200”不允许访问。响应 有HTTP状态码405。
我在Laravel上有CORS中间件:
header('Access-Control-Allow-Origin', '*')<br>
header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, DELETE, OPTIONS')<br>
header('Access-Control-Allow-Headers', 'Origin, Content-Type, Authorization , X-Auth-Token');<br>
我的前端和api有不同的地址:
myfrontend.mydomain.com
myapi.mydomain.com
我的Angular HTTP请求标头是:
let headers = new Headers({
'Content-Type': 'application/json; charset=utf-8',<br>
'Authorization': 'LaravelReturnedAuthToken',<br>
'Accept': 'application/json; charset=utf-8',<br>
'Access-Control-Allow-Origin': '*',<br>
'Access-Control-Allow-Methods': 'PUT, GET, POST, DELETE, OPTIONS',<br>
'Access-Control-Allow-Headers': 'Content-Type, x-xsrf-token',<br>
});
let options = new RequestOptions({headers: headers});
如果我删除Angular HTTP请求标头,一切正常。 我不明白我做错了什么。
ApI:Laravel 5.3
前端:Angular 4
答案 0 :(得分:1)
只需从您的请求中删除这些Access-Control
标头即可。它们并不意味着随请求发送,而是必须与响应一起返回。
关于MDN的更多信息: