Javascript json数组通过浏览器可用,但通过getJSON以静默方式失败

Javascript json数组通过浏览器可用,但通过getJSON以静默方式失败,javascript,json,web-services,getjson,Javascript,Json,Web Services,Getjson,这是我第一次来这里,所以请容忍我 我有两个类似的web API,都可以使用浏览器访问,但只有一个可以使用jquery。有什么好处 这一个可以使用浏览器和getjson,都很好: $.getJSON( "http://api.openweathermap.org/data/2.5/weather?q=london&appid=33d0ba5efa0edb1a2282c3165b00d15e&units=metric") .done(function( json ) { consol

这是我第一次来这里,所以请容忍我

我有两个类似的web API,都可以使用浏览器访问,但只有一个可以使用jquery。有什么好处

这一个可以使用浏览器和getjson,都很好:

$.getJSON( "http://api.openweathermap.org/data/2.5/weather?q=london&appid=33d0ba5efa0edb1a2282c3165b00d15e&units=metric")
.done(function( json ) {
console.log( "JSON Data: " + json.name );
})
.fail(function( jqxhr, textStatus, error ) {
var err = textStatus + ", " + error;
console.log( "Request Failed: " + err );
});
下面这一条几乎相同,但仅在您访问地址时可用,如果您尝试获取json,它会以静默方式失败或抛出错误:

$.getJSON( "http://info.studyinpoland.pl/admin/public/api/events")
.done(function( json ) {
console.log( "JSON Data: " + json[0].id );
})
.fail(function( jqxhr, textStatus, error ) {
var err = textStatus + ", " + error;
console.log( "Request Failed: " + err );
});

为什么会失败?我需要来自的数据,否则我如何使用javascript访问它?

如果您在控制台中查看,您将收到以下错误“XMLHttpRequest无法加载。请求的资源上不存在“access Control Allow Origin”头。因此不允许访问源”

为了解决这个问题,我所做的是从后端而不是前端进行ajax调用,它工作得很好


希望这有帮助:)

我找到了解决办法。下载这个chrome扩展


我无法复制上述错误消息。也请阅读上面的文章。因此,似乎唯一的实际选择是以某种方式修改后端(我无权访问)。真的没有纯前端javascript解决方案吗?这几乎不是一个普遍适用的解决方案,因为您不能期望所有访问者都安装此扩展。这只是调试用的。谢谢。问题确实是跨源的,它是在服务器端更改的。