我在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中为数组设置值?
答案 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"
}
});