我有一个Web服务,它返回以下响应/有效负载:
[{"msg":"Order requires backorder","status":"ERROR"}]
我有以下AJAX代码来处理这个结果:
$.post("/myorder/{{ order_id }}",
{},
function(data, status){
var dataJson = $.parseJSON(data);
if (status=="success") {
if (dataJson['status'] == "OK") {
alert('Success');
} else {
alert(dataJson['msg']);
}
} else {
alert("ERROR. Data: " + data + "\nStatus: " + status);
}
}
);
注意:{{ order_id }}
来自使用过的模板系统,它不是问题的一部分。
我在控制台中收到以下错误:
SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
我也尝试过不使用.parseJSON
并使用直接变量data
而没有成功。
.post
是否使用正确的方法?我怎样才能进一步排除故障或处理这个JSON有效负载应该做些什么?
答案 0 :(得分:1)
首先你不需要parseJSON,因为jQuery会解析它。 其次,您编写服务返回一个包含一个对象的数组,因此使用data.status将返回undefined。但是使用数据[0] .status和数据[0] .msg可以工作。