具有有效JSON输出的JSONP分析错误

JSONP Parse Error with valid JSON Output

本文关键字:JSONP 错误 输出 有效 JSON      更新时间:2023-09-26

我正在使用JSONP调用跨域AJAX请求。现在,我可以使用CORS使其工作。但是,我想知道为什么JSONP没有发生这种情况。我查看了其他有类似问题的线程,但不明白为什么它在我的情况下不起作用。

这是代码:

 $.ajax({
        type: "GET",
        url: http://XXXX:8000/sap/bc/test_rest/jsonp_test?mode=S&ticket=123,
        dataType: "jsonp",
        jsonp: false,
        jsonpCallback: "myJsonMethod",
        success: function (data) {
            alert(data);
        },
        error: function (httpReq, status, exception) {
            alert(status + " " + exception);
        }
    });

现在,这调用了我的服务器,数据被填充,然后我在回调URL上收到警报"解析错误myJSONMethod未被调用"http://xxxx:8000/sap/bc/test_rest/jsonp_test?mode=S&ticket=123&amp_=1470322282936

此外,在控制台中,我得到的错误为未捕获的SyntaxError:意外令牌:响应结构为:

{"ROOT":{"CONTRACT":"40002356","ITEM":"000010","KUNNR":"0000004676","NAME":"REALTY EXECUTIVES","NET_PRICE":19.95,"GROSS_PRICE":19.95,"MATNR":"144","SQFEET":""}}

当我在jsonint上运行这个JSON输出时,它说它是一个有效的JSON。我不知道JSON哪里搞砸了。

您的数据必须是这样才能对JSONP:有效

myJsonMethod({"ROOT":{"CONTRACT":"40002356","ITEM":"000010","KUNNR":"0000004676","NAME":"REALTY EXECUTIVES","NET_PRICE":19.95,"GROSS_PRICE":19.95,"MATNR":"144","SQFEET":""}});

responsetext必须是有效的js代码,并且在响应结束后将立即运行。所以如果你写你的代码

{"根":{"合同":"40002356","项目":"000010","KUNNR":"0000004676"executions","NET_PRICE":19.95,"GROSS_PRICE":19.95%,"MATNR":"144","sqfeets":"}}

<script>标记中,控制台将抛出类似的错误