代码之家  ›  专栏  ›  技术社区  ›  M.E.

处理JSON响应时出错。意外的字符

  •  0
  • M.E.  · 技术社区  · 6 年前

    我有一个返回以下响应/有效负载的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 回复  |  直到 6 年前
        1
  •  1
  •   Henri Benoit    6 年前

    首先,您不需要parsejson,因为jquery将解析它。 其次,编写服务返回一个数组,其中有一个对象,因此使用data.status将返回undefined。但使用数据[0].status和数据[0].msg将有效。