Hun*_*man 7 javascript php apache ajax cors
所以基本上我使用42matters.com APP市场API从谷歌游戏商店获取应用程序详细信息或信息,一切正常,我收到了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));
});
Run Code Online (Sandbox Code Playgroud)
如上所述,这是返回数据,我能够相应地改变一切,但现在它无缘无故地给了我这个错误
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
Run Code Online (Sandbox Code Playgroud)
我已经使用PHP启用了CORS,没有任何问题,尝试更改apache的conf文件以启用CORS,但服务不会重启,所以我被卡住了.
还有一件事,当我在浏览器中手动输入上述链接时,它确实提供了所需的结果.请帮我解决一下
小智 8
在浏览器端阻止CORS,不允许AJAX从另一个域请求数据.您应该联系42matters.com团队为您打开crossdomain.xml,就像这个CORS jQuery AJAX请求或者有人发布一个格式良好的crossdomain.xml样本吗?
或者AJAX Cross-Domain的解决方法是JSONP:jQuery AJAX跨域,但API应该支持这种请求.
最后一件事是不要使用AJAX从其他来源收集数据,如果是移动平台,它应该有本机HTTP Request对象来做这个
我知道这是旧技术,但我们中的一些人仍然要处理这个问题.
如果您正在处理IIS6 Web服务器:
IIS7 - 将其添加到您的web.config中
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
77377 次 |
最近记录: |