CORS OPTIONS请求成功,但在Safari中挂起

sch*_*rht 8 javascript php cors laravel-5.3 angular

Safari(10 - OSX El Capitan)问题与CORS

我正在从AngularJS前端向Laravel Back-end做一个CORS POST请求.

  • 在Chrome和Firefox中,OPTIONS和POST请求都返回http状态200 OK
  • 在Safari 10(OSX)中,OPTIONS和POST请求都返回http状态200 OK,但OPTIONS请求继续加载(http状态200 OK!)

请求标题

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/
Run Code Online (Sandbox Code Playgroud)

响应标题

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
Run Code Online (Sandbox Code Playgroud)

在我获得http状态200 OK(OPTIONS请求)后,Safari挂起.我该怎么办?

小智 2

尝试返回 204 No Content,这对我有用。在一些例子中可以找到它,没有进一步的解释。