自从升级到 jquery 1.9.1 后,这个曾经正常工作的 ajax 调用在 chrome 中中断。
错误信息是:Uncaught TypeError: Illegal invocation
。
在Firefox中,它也中断了,错误消息是:NS_ERROR_XPC_BAD_OP_ON_WN_PROTO: Illegal operation on WrappedNative prototype object
这是代码。所有函数参数都是预期的类型,所以我对这里发生的事情有点困惑。
var my_params = {
'cache': false,
'data': {
url: Obj.url,
section: Obj.section,
item: Obj.item,
historyfile: LabHistory.dataFile
},
'dataType': 'html',
'timeout': 3000,
'url': LabHistory.urlWrite + '?historyfile=' + LabHistory.dataFile
};
/* PROBLEM HAPPENS HERE, AT THE AJAX() CALL. ARGUMENTS ARE
cache=false
data= {url : 'http://client.dev/projects/project-name/' , section:'projects'
item:'project-name' }
dataType=html
timeout=3000
url=_www/_application/history.write.php
*/
$.ajax(my_params).done(function()
{
$.log('history.refresh.write data worked.');
refreshHistory();
}).fail(function()
{
$.log('history.refresh.write data failed');
});
编辑 这里是 log() 函数。
jQuery.log = function(message)
{
var mymessage = '';
if (typeof message === 'array' || typeof message === 'object')
{
for (var prop in message)
{
if (typeof prop !== 'function')
{
mymessage += "\n"+ prop + '=' + message[prop];
}
}
}
else
{
mymessage = message;
}
if (window.console)
{
window.console.log(mymessage);
}
};