Javascript jqueryajax不会返回文本和/或发出错误警报
可能重复:Javascript jqueryajax不会返回文本和/或发出错误警报,javascript,jquery,Javascript,Jquery,可能重复: 在下面的代码中 我试图将我的ajax调用放在一个需要它的函数中,但是makeIt()不会从ajax调用返回“usa”,或者我的做法完全错了吗 var makeIt = function () { var getStuff = function () { return $.ajax({ type: "POST", url: "my.php", data: { id: "2"
在下面的代码中 我试图将我的ajax调用放在一个需要它的函数中,但是makeIt()不会从ajax调用返回“usa”,或者我的做法完全错了吗
var makeIt = function () {
var getStuff = function () {
return $.ajax({
type: "POST",
url: "my.php",
data: {
id: "2"
},
success: function (data) {
data
}, // data will return string "usa"
error: function () {
alert("error");
}
});
};
return getStuff();
};
var result = makeIt() //result should = "usa"
仅仅在
success
函数中写入数据
,并不能取得任何效果
success: function (data) {
data
}
它应该是这样的
success: function (data) {
doSomethingWith(data);
}
仅仅在
success
函数中写入数据
,并不能取得任何效果
success: function (data) {
data
}
它应该是这样的
success: function (data) {
doSomethingWith(data);
}
您做错了。$.ajax调用是任意时间的,makeIt无法返回由$.ajax调用获得的值,您可以这样做:
var makeIt = function (callback) {
$.ajax({
type: "POST",
url: "my.php",
data: { id: "2" },
success: callback,
error: function () { alert("error"); }
});
};
makeIt(function (result) {
//result should = "usa"
});
这样,您就有了一个围绕$.ajax调用的漂亮包装器,并提供了所有参数和错误处理。您做错了。$.ajax调用是任意时间的,makeIt无法返回由$.ajax调用获得的值,您可以这样做:
var makeIt = function (callback) {
$.ajax({
type: "POST",
url: "my.php",
data: { id: "2" },
success: callback,
error: function () { alert("error"); }
});
};
makeIt(function (result) {
//result should = "usa"
});
这样,您就有了一个围绕$.ajax调用的漂亮包装器,并提供了所有参数和错误处理。将“结果变量”定义为全局变量
然后将额外的功能添加到项目中
var result;
var makeIt = function () {
var getStuff = function () {
return $.ajax({
type: "POST",
url: "my.php",
data: { id: "2" },
success: function (data) { fnResult(data) },
error: function () { alert("error"); }
});
};
function fnResult(data){result = data};
将“结果变量”定义为全局变量
然后将额外的功能添加到项目中
var result;
var makeIt = function () {
var getStuff = function () {
return $.ajax({
type: "POST",
url: "my.php",
data: { id: "2" },
success: function (data) { fnResult(data) },
error: function () { alert("error"); }
});
};
function fnResult(data){result = data};
AJAX=异步JavaScript和XML…
$.AJAX()
函数不返回值-它执行回调(成功
)一旦远程url的执行完成…@ManseUK我想你是对的-我唯一关心的是,你提到的问题的答案是使用async:false
witch,至少我认为这是一种不好的方法。@AndreasAL同意。。也许有更好的复制方法?可能的二副本:AJAX=异步JavaScript和XML…函数$.ajax()
不返回值-它执行回调(成功
)一旦远程url的执行完成…@ManseUK我认为你是对的-我唯一关心的是,你提到的问题的答案是使用async:false
witch,至少我认为这是一种不好的方法。@AndreasAL同意。。也许有更好的复制方法?可能有两种: