2013-02-21 41 views
2

我用jQuery 1.7.2和ajax功能的问题,当我调用下面的代码,我得到在Firefox Firebug的控制台以下错误:的jQuery 1.7.2 AJAX调用抛出NS_ERROR_XPC_NOT_ENOUGH_ARGS错误

NS_ERROR_XPC_NOT_ENOUGH_ARGS:没有足够的论据 [nsIDOMLocation.replace]

var weights= new Object(); 

    // weight is then manipulated in here 

    $.ajax(
     { 
      url: '/admin/countries/index.php', 
      data: ({action: 'sort', cid: cid, weights: weights}), 
      dataType: 'json', 
      success: function(data){      
       alert('suck-sess'); 
            // do stuff in here 
      }, 
      error: function (request, status, error) { 
       alert(request.responseText); 
      } 
     } 
    ) 

我甚至不能肯定,它的successfuly发出请求,当我转储$_REQUEST["action"]我我的index.php PHP它通过空白,当它应该清楚地'排序'。

当我执行代码时,我没有得到成功或错误警报,所以我看不到错误来自哪里。

回答

0

事实证明,权重问题,因为你可以看到它被定义为一个JavaScript对象,但是我不得不使用JSON.stringify(weights)作为JSON编码的字符串来传递它。

0
NS_ERROR_XPC_NOT_ENOUGH_ARGS: Not enough arguments [nsIDOMLocation.replace] 

这是基于gecko的浏览器(firefox)抛出的那种内部错误。我不认为它与你的代码有关。对我来说更像是一个浏览器错误。

+0

我担心这是我现在使用的jQuery版本(1.7.2)和'ajax'函数的实现问题,后者在jQuery的更高版本中进行了更改。 – crmpicco 2013-02-21 12:31:51

+1

@crmpicco“代码看起来好的时候,你应该检查数据”。你确定'权重'是一个有效的对象。看看[这个讨论](http://chat.stackoverflow.com/transcript/5442/2011/11/29/16-17),看看它是否有帮助。 – sitifensys 2013-02-21 13:00:26

+0

事实证明'权重'是问题所在,因为您可以看到它被定义为JavaScript对象,但是我必须使用'JSON.stringify(权重)'作为JSON编码的字符串来传递它。 – crmpicco 2013-02-21 15:14:59