处理JSON响应时出错。意外的角色

时间:2018-05-29 22:01:49

标签: javascript jquery json ajax

我有一个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有效负载应该做些什么?

1 个答案:

答案 0 :(得分:1)

首先你不需要parseJSON,因为jQuery会解析它。 其次,您编写服务返回一个包含一个对象的数组,因此使用data.status将返回undefined。但是使用数据[0] .status和数据[0] .msg可以工作。