【发布时间】:2011-11-03 01:06:38
【问题描述】:
我在我的应用程序的一个 js 文件中有此语句,该语句在开始时加载以在每次 ajax 请求后检查会话超时。
if(window.jQuery)
{
$.ajaxSetup({
complete: function (xhr) {
if (xhr.getResponseHeader('SESS_TIMEDOUT') == "1") {
alert('Your session has timed out. Please login again!');
window.location = '/logout';
}
}
});
}
但后来我开始将所有静态文件放在 CDN 中,现在我在控制台中收到这种类型的错误:
Uncaught TypeError: Cannot call method 'getResponseHeader' of undefined
$.ajaxSetup.completeform.js:10
c.extend.handleCompletejquery-1.4.4.min.js:143
c.extend.ajax.A.onload.A.onreadystatechange
显然 xhr arg 没有被传入。
我还注意到我的一个脚本有一个使用 getScript() 函数的语句,该函数的 URL 曾经是 '/js/script.js' 但现在是 'http://static.mydomain.com/ js/script.js'。跨域问题可能是这里的罪魁祸首吗?
关于如何解决这个问题的任何想法?
【问题讨论】:
标签: php javascript jquery ajax cross-domain