我正在尝试编写一些简单的Javascript以从URL加载JSON有效负载。
我知道我有CORS问题,目前我对此表示满意。 我可以禁用Chrome的支票。
我遇到的问题是我得到200 OK响应,但同时还是一个错误,我不明白为什么。
var urlAddress = "https://light-ratio-149809.appspot.com/ESI-OrgUnitService?jsoncallback=?";
$.getJSON(urlAddress, {
format: "json"
})
.always(function( jqXHR, textStatus, errorThrown ) {
console.log("reponse textStatus["+textStatus+"] errorThrown["+errorThrown+"] [" + jqXHR.responseText + "]");
})
.done(function(data) {
console.log("success");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
有人可以告诉我我要去哪里了吗
如果我使用此JSON有效负载,它将起作用。
该错误似乎是解析错误。
响应textStatus [parsererror] errorThrown [Error: jQuery331004379421802427674_1551456238952未调用] [未定义]
答案 0 :(得分:1)
parseError是因为jQuery认为您期望的是JSONP响应(即某些可执行Javascript),而不仅仅是JSON数据。它认为是因为您向URL添加了jsonCallback
querystring参数。
一旦删除它,它可以返回到期望的常规JSON(端点返回的内容),但是随后被服务器的CORS限制所破坏。
当服务器返回的实际上不是真正的JSONP时,您无法假装要接收JSONP,从而无法获得全面的CORS。我建议您找出该服务器是否确实具有JSONP端点,或者是否可以将您的应用添加为允许的CORS客户端。