小编典典

使用.getJSON获取Play商店应用详细信息时出现跨源阻止请求[CORS]错误

ajax

所以基本上我是使用42matters.com APP Market API从Google
Play商店获取应用程序详细信息或信息,一切正常,并且我得到了JSON响应,但是当我在周末假期后回到办公室时,奇怪的错误来了,什么也没有返回。

我已经使用$ .getJSON函数,如:

var packageID = 'com.whatsapp';
   $.getJSON('https://42matters.com/api/1/apps/lookup.json?p='+packageID+'&access_token=accesstoken1234')
.done(function(appDetails) {
            $('#logo').html(JSON.stringify(appDetails));
        });

如前所述,这是返回数据,我能够相应地更改所有内容,但现在它无缘无故地给了我这个错误

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://42matters.com/api/1/apps/lookup.json?p=com.whatsapp&access_token=accesstoken1234. This can be fixed by moving the resource to the same domain or enabling CORS

我已经使用PHP启用了CORS,但没有任何反应,尝试更改apache的conf文件以在其中启用CORS,但是该服务不会因此而重启,所以我陷入了困境。

还有一件事,当我在浏览器中手动输入以上链接时,它确实提供了所需的结果。请帮我解决


阅读 265

收藏
2020-07-26

共1个答案

小编典典

CORS在浏览器端被阻止,不允许AJAX向另一个域请求数据。您应该联系42matters.com团队为您打开crossdomain.xml,例如CORS
jQuery AJAX请求,
或者有人可以发布格式正确的crossdomain.xml示例吗?

或AJAX跨域的解决方法是JSONP:jQuery
AJAX跨域,
但API应该支持这种请求。

最后一件事是不要使用AJAX从其他来源收集数据,如果它是移动平台,则应该具有本机HTTP Request对象来执行此操作

2020-07-26