来自函数的返回对象在 jQuery 中未从 $.post 定义
return object from function is undefined from $.post in jquery
我有一个jquery post函数,它从php代码块返回一个数据对象。
$.post("get_chat_history.php", {
item_id : item_id,
participant_1 : participant_1,
participant_2 : participant_2
}, function(data) {
alert(data);
return data;
});
这是从另一个JavaScript文件中的以下函数调用的
var data = getChatHistory(current_member_id,item_global["user"] ["member_id"],item_global["id"]);
alert(data);
现在在 $.post 中,alert(data) 以 JSON 格式抛出正确的值,但是当我测试返回给调用函数的相同值时,我变得未定义。
我是否缺少一些东西,因为我想保持这个函数的通用性和可从其他地方调用?
问候
萨帕托斯
这是因为此函数运行异步电子并将数据返回到匿名函数function(data) {}
。使用回调。
下面是示例:
function getFoo(callback){
$.get('somepage.html', function(data){
callback(data)
})
}
getFoo(function (data){
// do something with data
})
您面临的问题是 jQuery.post 是异步的。当getChatHistory被调用时,它还没有收到来自服务器的回复,所以它undefined
。
为此,我将getChatHistory
实现为一个函数,该函数获取您需要传递给服务器的数据,以及触发"成功"部分时执行的函数。
有关回调的更多信息。
相关文章:
- 如何使用自定义标头跨域执行AJAX POST
- 使用javascript ajax post方法的未定义偏移PHP错误
- x可编辑的post值未定义
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- 为什么我们需要为POST定义res.on('data'..,即使我们不处理数据
- 从 Angular 数据工厂中的 HTTP POST 请求接收未定义的结果
- 来自函数的返回对象在 jQuery 中未从 $.post 定义
- Jquery Ajax POST方法不工作,返回未定义的值
- 从一个函数传递到另一个函数的变量在使用jQuery的.post之后变得未定义
- 使用“GET”的客户端请求表单,即使定义了“POST”.javascript iframe是原因吗
- 无法读取属性'用户名'对于Angular Post Request,共个未定义
- 如何通过头中带有自定义参数的RestTemplate发送POST请求
- 类型错误:无法读取 Nodejs 中未定义的属性“post”
- 如何在post数据中进行ajax调用-->图像和自定义数据(名称和值对)
- 内部服务器错误在 post 请求中使用 Angular js 中的自定义服务
- 在 AJAX post request 中使用自定义 HttpServletRequest 过滤器
- 使用 $.post 对用户进行身份验证以返回自定义错误/成功消息
- 使用 Jquery post 获取多个值获取未定义的值
- Nodejs - Req.body 未定义在 post 中,带有快速 4.9.0
- Angular 2 TS-在服务器上未定义POST