Ane*_*eez 89 javascript ajax jquery json cors
我正在尝试获取新闻网站的Feed.我以为我会使用google的feed API将feedburner Feed转换为json.以下网址将以json格式从Feed返回10个帖子.http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q=http://feeds.feedburner.com/mathrubhumi
我使用以下代码来获取上面的url的内容
$.ajax({
type: "GET",
dataType: "jsonp",
url: "http://ajax.googleapis.com/ajax/services/feed/load",
data: {
"v": "1.0",
"num": "10",
"q": "http://feeds.feedburner.com/mathrubhumi"
},
success: function(result) {
//.....
}
});
Run Code Online (Sandbox Code Playgroud)
但它没有工作,我收到以下错误
XMLHttpRequest无法加载 http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q=http%3A%2F%2Ffeeds.feedburner.com%2Fmathrubhumi.请求的资源上不存在"Access-Control-Allow-Origin"标头.原产地" :HTTP //本地主机,因此"是不允许访问.
我该如何解决?
dkr*_*hok 106
如果您使用谷歌浏览器浏览器,则可以使用扩展程序进行攻击.
您可以在应用中找到可随时修改CORS标头的Chrome扩展程序.显然,这只是Chrome,但我喜欢它可以在任何地方进行零更改.
您可以使用它在本地计算机上调试您的应用程序(如果一切都在生产中).
注意:如果URL断开,则扩展名称为Access-Control-Allow-Origin:*.我建议您在不处理任何内容时禁用此扩展名,因为例如,youtube不适用于此扩展程序.
tha*_*nix 78
我相信这可能是Chrome不支持localhost通过Access-Control-Allow-Origin- 请参阅Chrome问题
要让Chrome Access-Control-Allow-Origin在标头中发送,只需将/ etc/hosts文件中的localhost别名替换为其他域,例如:
127.0.0.1 localhost yourdomain.com
Run Code Online (Sandbox Code Playgroud)
然后,如果您使用yourdomain.com而不是访问脚本localhost,则调用应该成功.
小智 9
试试这个 - 通过设置标题来设置Ajax调用,如下所示:
var uri = "http://localhost:50869/odata/mydatafeeds"
$.ajax({
url: uri,
beforeSend: function (request) {
request.setRequestHeader("Authorization", "Negotiate");
},
async: true,
success: function (data) {
alert(JSON.stringify(data));
},
error: function (xhr, textStatus, errorMessage) {
alert(errorMessage);
}
});
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令行打开Chrome来运行代码:
chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
435122 次 |
| 最近记录: |