我正在从AngularJS前端向Laravel后端执行CORS POST请求。
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4
Access-Control-Request-Headers:content-type
Access-Control-Request-Method:POST
Cache-Control:no-cache
Connection:keep-alive
Host:x.local
Origin:http://y.local
Pragma:no-cache
Referer:http://y.local/
Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Methods:POST, GET, OPTIONS, PUT
Access-Control-Allow-Origin:*
Cache-Control:no-cache
Connection:keep-alive
Content-Length:16
Content-Type:application/json
Date:Mon, 31 Oct 2016 09:22:51 GMT
Server:nginx/1.11.1
在我获得http状态200 OK(OPTIONS请求)后,Safari挂起。我该怎么办?
答案 0 :(得分:2)
尝试返回204 No Content,这对我有用。 在一些例子中发现它没有进一步的解释。
答案 1 :(得分:2)
确保将Accept
标头添加到您的CORS AllowedHeaders
选项中。这解决了我。
您的请求的Accept标头为/
,但您的CORS选项根本无法处理。像Chrome这样的现代浏览器可以在没有标题的情况下工作,但Safari并没有保持最新状态。