平台:
在iPhone iOS 10,macOS Sierra v10.12.6上测试 Safari v10.1.2(Safari v10.1.1及更低版本似乎没有此问题,Chrome和Firefox也没有)
描述:
我们在通过Google云端存储保存照片时遇到问题。从Web检查器中,我们看到我们正在向http://storage.googleapis.com/发出OPTIONS请求...,但我们收到一个空响应。然而,在其他浏览器或其他版本的Safari中,我们看不到OPTIONS请求,只看到POST请求。我们已经确认我们在Google云端存储分区上的CORS配置允许我们的来源。
OPTIONS请求的请求标头如下所示:
Access-Control-Request-Headers:
Referer: <referrer>
Origin: <origin>
Accept: */
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8
Access-Control-Request-Method: POST
从Safari devtools中我们可以看到,没有响应标头,响应为空。至于状态代码,我们在Safari devtools中看不到任何状态代码,但是当我们使用Charles时,我们看到我们收到了200状态代码,但响应和响应标头也是空的。
这些是控制台中的错误:
不允许
http://storage.googleapis.com/...
无法加载资源:Origin Access-Control-Allow-Origin<origin>
XMLHttpRequest无法加载
http://storage.googleapis.com/...
Origin Access-Control-Allow-Origin不允许<origin>
。
最新版本的Safari和CORS是否存在问题?