JQuery AJAX 响应未定义
JQuery AJAX response undefined
我有一个奇怪的(可能不适合某些人)的问题,我有一个JavaScript方法来调用我所有的ajax调用,请参阅下文。
function ajaxCall(url, params) {
if (params === null) {
$.ajax({
type: 'POST',
url: url,
contentType: 'application/json; charset=utf-8',
dataType: 'json'
}).success(function(response) {
return response;
}).error(function(response) {
return response;
});
} else {
var data = JSON.stringify(params);
$.ajax({
type: 'POST',
url: url,
data: data,
contentType: 'application/json; charset=utf-8',
dataType: 'json'
}).success(function(response) {
return response;
}).error(function(response) {
return response;
});
}
}
当我调用此方法时,我从 AJAX 调用中得到了适当的响应,并且看起来一切都很乐观,直到我返回响应时,调用返回未定义?
为了完整起见,我将包括我的呼叫代码。
var call = ajaxCall(someUrl, someParams);
只是为了澄清并确保我的漫谈被理解,在上面的例子中调用是未定义的吗?
你不能
这样做,因为 ajax 调用是异步的,
$.ajax 返回一个延迟对象,您可以使用它来获取所需的内容在这里阅读
ajax 调用本质上是async
的,并且 dosent 返回任何内容。 所以当你做这样的事情时
var call = ajaxCall(someUrl, someParams);
然后将请求发送到服务器,下一行开始执行。 不将值放入调用变量中;
也像这样编码
.success(function(response) {
return response;
不会做任何事情,因为 .success() 在响应成功时需要一个函数或回调来执行,所以如果你在其中返回一些东西并将 async
标志放在$.ajax()
options
中以true
. 那么nothing/undefined
也会被返回。
相关文章:
- 页面加载时未定义的 ajax 响应
- 使用 RESTful API,如果未定义特定的响应 json 级别,我如何在客户端不出错
- Cordova嵌入式网络视图未响应navigator.camera未定义
- 如何在未定义类时从 AJAX 响应中获取锚标记值
- Angular ReferenceError:未定义响应
- ember dev fixes错误:“;断言失败:findAll的响应必须是数组,而不是未定义的“”;
- 无法调用方法'发送'express js中未定义的(响应未定义)
- 错误:未定义响应
- JSON响应一直未定义(ajax文件上传)
- AngularJS HTTP 资源 - 响应函数未定义
- 值是未定义的,直到响应出现在 AngularJS 中
- 来自 chrome 扩展程序中内容脚本的未定义响应
- Ember 断言失败:来自 findQuery 的响应必须是数组,而不是未定义
- FB.api 响应未定义
- 来自 ajax 中 JSON 响应的值返回为未定义
- 角度“响应未定义”时尝试为资源实现全局错误处理程序
- 未定义的响应来自侧边栏小工具中 XHR 的文本
- 返回的 Ajax 响应指出其属性值未定义
- TypeError:jQuery自动生成表行中未定义响应[i]
- node.js未找到解析成功/错误,未定义响应