2

自从升级到 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);
    }
};
4

0 回答 0