JSONP 具有有效 JSON 输出的解析错误
JSONP Parse Error with valid JSON Output
我正在使用 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);
}
});
现在,这会调用我的服务器,数据已填充,然后我在回调 解析错误 我的 JSON 方法未被调用时收到警报 URL http://xxxx:8000/sap/bc/test_rest/jsonp_test?mode=S&ticket=123&_=1470322282936
此外,在控制台中我收到错误 Uncaught SyntaxError: Unexpected token :
响应结构为:
{"ROOT":{"CONTRACT":"40002356","ITEM":"000010","KUNNR":"0000004676","NAME":"REALTY EXECUTIVES","NET_PRICE":19.95,"GROSS_PRICE":19.95,"MATNR":"144","SQFEET":""}}
当我 运行 这个 JSON 在 jsonlint 上输出时它说它是一个有效的 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":""}});
响应文本必须是有效的 js 代码,如果您编写代码
,当响应为 over.So 时,它会立即 运行
{"ROOT":{"CONTRACT":"40002356","ITEM":"000010","KUNNR":"0000004676","NAME":"REALTY
EXECUTIVES","NET_PRICE":19.95,"GROSS_PRICE":19.95,"MATNR":"144","SQFEET":""}}
在 <script>
标签中,控制台会抛出这样的错误
我正在使用 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);
}
});
现在,这会调用我的服务器,数据已填充,然后我在回调 解析错误 我的 JSON 方法未被调用时收到警报 URL http://xxxx:8000/sap/bc/test_rest/jsonp_test?mode=S&ticket=123&_=1470322282936
此外,在控制台中我收到错误 Uncaught SyntaxError: Unexpected token : 响应结构为:
{"ROOT":{"CONTRACT":"40002356","ITEM":"000010","KUNNR":"0000004676","NAME":"REALTY EXECUTIVES","NET_PRICE":19.95,"GROSS_PRICE":19.95,"MATNR":"144","SQFEET":""}}
当我 运行 这个 JSON 在 jsonlint 上输出时它说它是一个有效的 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":""}});
响应文本必须是有效的 js 代码,如果您编写代码
,当响应为 over.So 时,它会立即 运行{"ROOT":{"CONTRACT":"40002356","ITEM":"000010","KUNNR":"0000004676","NAME":"REALTY EXECUTIVES","NET_PRICE":19.95,"GROSS_PRICE":19.95,"MATNR":"144","SQFEET":""}}
在 <script>
标签中,控制台会抛出这样的错误