调用Ajax并返回响应
Calling Ajax and returning response
我搜索了很多问题,但没有得到正确的答案。根据我的研究,我制作了以下函数。我知道ajax调用是异步的,所以它完成了向全局变量传递值并返回该值,但我得到了一个空白或未定义的值。我可以用$('#someid').html作为响应或其他一些方法来实现它,但我不想实现它们。知道我在这里做错了什么吗
function SimpleAjax(form, postData, url)
{
var returnData;
var sendData;
if (form == "") {
sendData = postData;
}
else if (postData == "") {
sendData = $(form).serialize();
}
$.ajax({
type: 'POST',
url: url,
cache: false,
data: sendData,
success: function(data)
{
if (data != null || typeof data != 'undefined') {
returnData = data;
}
}
}).done(function(data) {
returnData = data;
});
return returnData;
}
问题是return returnData;
发生在成功或已完成的函数执行之前。正如您所说,它是异步的。但是,您的函数SimpleAjax正在同步运行。
因此,它启动Ajax调用$.ajax({ ... });
,然后执行return returnData;
。
我所做的,不是使用全局,那只会让你头疼。但是传入一个函数以在成功时执行,而不是试图返回结果。
类似。。。
function SimpleAjax(form, postData, url, successCallback)
{
var returnData;
var sendData;
if (form == "") {
sendData = postData;
}
else if (postData == "") {
sendData = $(form).serialize();
}
$.ajax({
type: 'POST',
url: url,
cache: false,
data: sendData,
success: successCallback
});
}
//TODO: set your input parameters
SimpleAjax(form, postdata, url, function(data) {
alert(data);
});
也找到了答案,我认为.done会发挥神奇的作用,并在ajax完成后返回值,但它没有。。。。只需输入此代码async:false,
在ajax中,它将工作
function SimpleAjax(form,postData,url)
{
var returnData;
var sendData;
if (form == "")
{
sendData=postData;
}
else if(postData=="")
{
sendData=$(form).serialize();
}
$.ajax({
type:'POST',
url: url,
cache: false,
data:sendData ,
async: false,
success: function(data)
{
if (data != null || typeof data!='undefined')
{
returnData= data;
}
}
});
return returnData;
}
相关文章:
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 自定义验证并格式化从数据数据库返回的响应-BEGINNER
- 如何执行ajax响应返回的javascript函数
- 尊重“; 〃;从HTML显示中的API响应返回的换行符(和特殊字符)
- Ajax响应返回null
- AJAX-没有得到简单的php响应(返回“undefined”)
- 将元素添加到 Ajax 响应返回的表单中
- 如何从Ajax响应返回动态javascript对象的值
- 为什么AJAX响应返回未定义
- 使用javascript解析作为JSON响应返回的java映射
- 如何保存从谷歌地图API响应返回的结果
- Android HttpPost响应返回网站的代码
- 双重拆分服务器响应返回错误
- 我如何发送多个请求相同的文件,并获得所需的响应返回php使用jquery ajax
- 支付导航表单php支付网关和返回php(响应返回php页面)
- CoffeeScript一直触发错误,当我得到一个200响应返回
- 使用$http时,视图关闭.棱角分明?当401作为响应返回时,Ng-view将关闭
- Mongodb POST响应返回0
- 从ajax响应返回数据
- 将JSON响应返回的HTML片段插入到DOM中