更新13/01/2019 :Chromium已对此进行了调查,这是一个WebKit问题。有关详细说明,请参见评论-https://bugs.chromium.org/p/chromium/issues/detail?id=878562#c17
我正在尝试使用Beacon API发送一些分析数据,但是在iPhone X(iOS 11.4.1)的Chrome(68.0.3440.83)上,它不会发布到安全站点(https)。例如
navigator.sendBeacon('http://xxxx.com', 'data');
将发送POST,但navigator.sendBeacon('https://xxxx.com', 'data');
将不发送POST。
navigator.sendBeacon()
在安全(https)和不安全(http)网站上均返回true
。
iPhone Safari,iPad Chrome,Android Chrome和桌面浏览器(macOS Chrome,Safari和Firefox)都可以正常工作。
服务器请求:
POST / HTTP/1.1
Host: xxxx.com
Accept: */*
Accept-Language: en-gb
Accept-Encoding: gzip, deflate
Cache-Control: max-age=0
Content-Type: text/plain;charset=UTF-8
Origin: http://yyyy.com
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_4_1 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/68.0.3440.83 Mobile/15G77 Safari/604.1
Connection: close
Referer: http://yyyy.com/test.html
Content-Length: 4
data
服务器响应:
HTTP/1.1 204 No Content
Content-Type: text/plain;charset=UTF-8
Date: Tue, 14 Aug 2018 14:15:45 GMT
Server: Apache
X-Powered-By: PHP/7.2.5
Connection: Close
有什么想法让Chrome在iPhone上运行吗?