无法从jQuery的帖子
返回任何数据我一直在寻找在这一个答案,但没有一个答案,我发现帮助解决这个问题:无法从jQuery的帖子
HTTP邮政通过jQuery没有返回任何数据。
下面是javascript代码:
$.post(
<ENDPOINT_URL>,
<XYZ DATA SENT>,
function(data){
//THIS IS THE PROBLEM HERE
},
"json")
.fail(function(jqXHR, textStatus, errorThrown){
alert(textStatus);
});
这就要求我的终点API URL罚款,返回代码200和JSON响应体:
{message: "XYZ"}
因此,这里是我做了什么到目前为止:
- 由于异步行为,我创建了一个函数来接收和处理数据输入。什么也没有发生。
- 添加.fail来处理故障。根据一篇文章,我的JSON返回的格式可能不正确,并且放置该失败处理失败可能会让我知道发生了什么......有没有办法获取实际的错误消息详细信息?
- 验证我的JSON。格式不正确还是我没有意识到?
- 改为用$ ajax代替整个代码。仍然,得到相同的错误。
我希望能够接收到该响应并处理消息“XYZ”。
谢谢大家的帮助,非常感谢。
教程/文章我已经按照:
https://api.jquery.com/jquery.post/
所有,非常感谢您的所有反馈 - 问题现在解决。 @Austin法语,在浏览服务器端和客户端JavaScript的完整方法后,我意识到这个问题与头文件有关。
我很抱歉没有进一步扩展我的问题并提供更多详细信息:我正在使用Amazon AWS API网关处理后端Lambda函数,客户端调用该函数,该函数完成该工作并返回JSON:
{"message":"xyz"}
我没有在客户端使用jQuery $ .post收到此消息。问题归结为AWS API网关处理请求并返回响应的方式。
我需要包括以下标题为我的拉姆达的功能反应的一部分:
"Access-Control-Allow-Origin" : "*"
下面是服务器端的响应的完整代码:
//Response
let responseCode = 200;
var responseBody = {
message: responseMessage
};
var response = {
statusCode: responseCode,
headers: {
"Access-Control-Allow-Origin" : "*"
},
body: JSON.stringify(responseBody)
};
现在在客户端上我的原始函数(数据){...}接收到响应并能够正确处理它,没有错误被触发。客户端响应处理程序:
function(data){
alert(JSON.stringify(data));
}
再次感谢大家的帮助!
有趣的。请更新您的标签以包含AWS或亚马逊网络服务,以便其他人可以找到类似的问题。并更新任何可能帮助或证明有用的答案,甚至只是为了让你朝着正确的方向前进 –
尝试以下操作:
$.post(
ENDPOINT_URL,
myData,
function(data) {
var response = jQuery.parseJSON(data);
console.log(response);
}
);
不起作用:(同样的问题仍然没有得到答复,但在Chrome开发人员模式下,我确实看到响应以JSON形式进入。 – nukalov
这是我通常用它的方式。它发送数据就好像以html格式发送并接收json响应。
var value1, value2;
$.ajax({
type: "POST",
url: url,
data: {"property1" : value1, "property2" : value2},
success: function(result, status, xhr){
<here you can process the json you get as response in result}
},
error: function(xhr, status, theError){
<here process if ajax fails>
},
dataType: "json"
});
有两件事情,将不适合在评论:
我喜欢这种格式AJAX:
var myUrl = $(selector).val();
$.post(myUrl, { name: "John", time: "2pm" })
.fail(function (data) { /* code for failure */ }),
.done(function(data) {
alert("Data Loaded: " + data);
});
要查看服务器返回然而,一件容易的做的是使用Chrome的调试器:
转到BP网络在k选项卡,选择调用方法,然后在右侧子窗格中选择响应。您不仅能够看到响应代码,还能看到返回的完整内容。
一些附加说明:
的。一旦AJAX完成,完成将调用该函数。
根据jquery版本,你可能没有.done,而是.success,反之亦然。
'{message:“XYZ”}'无效JSON - 这正是返回的内容吗?属性名称必须被引用,所以它应该是'{“message”:“XYZ”}'。 – nnnnnn
你有没有检查过如何在''上处理数据?有没有有效的回报数据或任何错误? –