如果您尝试发送 Ajax 请求、JSONP 请求,甚至卸载时的 window.name 请求,Safari 和 Chrome 会运行代码,但服务器永远看不到该请求。我的理论是执行线程在更改页面之前决不允许脚本标记运行。这是一个带有 JSONP 测试的测试页面。此代码(以及 Ajax 和 window.name)在 Firefox 和 IE7 中创建对 test.html 的请求,但不在 Safari 中:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<body>
<script language="javascript" type="text/javascript">
window.onunload = function(){
var encode = "UTF-8";
var script = document.createElement('script');
script.type = 'text/javascript';
script.src= "/test.html";
script.charset= encode;
document.body.appendChild(script)
}
</script>
</body>
</html>
有人知道解决这个问题的好方法吗?更具体地说,有人知道强制 Safari 在卸载时发送请求的方法吗?我发现的唯一解决方案(这对我的情况并没有真正帮助)是同步 XHR。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)