javascript无法在ajax中设置值

时间:2013-10-02 18:18:08

标签: javascript

我在javascript中有一个关于$ .ajax的问题​​:

如果我有这样的功能:

var jQueryFunction = function()
{
   var array = new Array();       
   ...

   $.ajax ({
       type: "GET",
       async: false,
       url: TPS_URL_1,
       dataType: "jsonp",
       jsonp: "callback",
       jsonpCallback: "tpsHandler",
       success: function(json)
       {
          array[0] = 1;
          array[1] = 2;
       }
   });

}

之后当我检查数组值时,它没有被任何东西设置并且仍为null。

但是我喜欢这个:

var jQueryFunction = function()
{
   var array = new Array(); 
       array[0] = 1;
       array[1] = 2;      
   ...

   $.ajax ({
       ...

   });

}

工作正常。

那么为什么我不能在$ .ajax中为数组设置值?

2 个答案:

答案 0 :(得分:1)

$.ajax({...})相当于

var obj = {...};
$.ajax(obj);

语句array[0] = 1不能放在像这样的对象声明中(即代码var obj = {array[0]=1}无效),因此你发布的代码无效(它抛出一个的SyntaxError)

如果要在ajax返回后设置这些数组元素,则应使用成功回调:

$.ajax({url: ...,
    success: function(returnData) {
        array[0] = 1;
    }
});

答案 1 :(得分:-1)

尝试:

简单:

var setup = {
    url         :   'index.php',
    dataType    :   "json",
    type        :   "post",
    data        :   {
        time        :   "now"
    },
    success     :   function(response)
    {
        console.log( response ) ;
    }
};
$.ajax( setup );

API(ajaxSetup):

$.ajaxSetup({
    url         :   'index.php',
    dataType    :   "json",
    type        :   "post",
    success     :   function(response)
    {
        console.log( response ) ;
    }
});

$.ajax({
    data:{
        time    :   "now"
    }
});