我想在'beforeunload'事件上对服务器进行JSONP调用。这一切都很好,直到我开始使用后退按钮。如果我离开页面,然后在下次调用beforeunload事件时按'返回',它看起来会生成JSONP请求,但服务器永远不会收到它。JSONP + onbeforeunload +后退按钮+问题
注意(1):已经在IE和FF上测试过(两者都出现问题)。 (2):我也测试过使用jQuery.getJSON方法,它有同样的问题,所以我认为makeJSONPCall函数是正确的。 (我可能是错的)
任何想法的人?
一些代码方面:
JSONP CALL:
makeJSONPCall('http://serverurl.mvc/method?args=' + data, 'callbackfunction');
function makeJSONPCall(url, callbackname)
{
if (url.indexOf("?") > -1) url += "&jsonp="
else url += "?jsonp="
url += callbackname + "&";
url += new Date().getTime();
var script = document.createElement("script");
script.setAttribute("id", "JSONP");
script.setAttribute("src",url);
script.setAttribute("type","text/javascript");
if (document.head) document.head.appendChild(script);
else document.body.appendChild(script);
}
感谢
感谢您的及时回应克里斯。不幸的是,作为公用事业脚本,我不能在人们的网页上发布警报。我其实并不认为这里有解决方案,因为在我收到服务器回复之前,我无法在beforeunload事件中“等待”。 谢谢反正 – gatapia 2009-11-19 00:04:39