在IE7和IE8中为IXMLHttpRequest对象赋值时发生异常

时间:2009-12-08 19:43:32

标签: javascript jquery ajax internet-explorer xmlhttprequest

我没有编写以下代码,我不是Javascript专家。所以请原谅我,如果你觉得这是一个微不足道的错误。 不过这是代码:

jQuery.ajax({
    type: barobj.method,
    url: handler,
    beforeSend: function (request) {
        request.vote_id = vid;
            ...
    },
    complete: function (request, textStatus){
           jQuery('#actor').filter("[title='"+request.vote_id+"']")
           ...
    },

它在FF,Chrome,Safari中运行良好,但在IE7和IE中没有(惊喜?) IE8。

Error: Object doesn't support this property or method处的request.voteid = vid例外情况 经过一些调试后,我发现在FF中,请求的类型为XMLHttpRequest,而在IE 7& 8,它有IXMMHttpRequest

类型

那么例外的原因是什么?我如何以能够取回vote_id事件onComplete值的方式解决问题?

非常感谢,

小煜。

1 个答案:

答案 0 :(得分:3)

Javascript支持闭包,因此您的完整函数应该能够访问调用代码范围内的任何变量。您无需明确保留并将vid值传递给它。

jQuery.ajax({
   type: barobj.method,
   url: handler,
   beforeSend: function (request) { },
   complete: function (request, textStatus){
          jQuery('#actor').filter("[title='"+ vid +"']")
          ...
   },