我正在尝试编写一些简单的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 [错误:jQuery331004379421802427674_1551456238952未被调用] [undefined]
parseError是因为jQuery认为你期待JSONP响应(即一些可执行的Javascript),而不仅仅是JSON数据。它认为,因为您将jsonCallback
查询字符串参数添加到URL。
一旦你删除它,它会回到期望常规JSON(这是端点返回的),但然后被服务器的CORS限制所击败。
你不能通过假装你想要接收JSONP来绕过CORS,而这实际上并不是服务器返回的内容。我建议您确定此服务器是否确实具有JSONP端点,或者您的应用程序是否可以添加为允许的CORS客户端。