我在我的應用程序中的一個js文件中有這樣的聲明,該聲明在開始時加載每次在ajax請求後檢查會話超時。ajaxSetup在使用CDN時給出錯誤
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'。跨域問題可能是罪魁禍首嗎?
關於如何解決這個問題的任何想法?
getScript將工作得很好跨域。 –