请求的资源错误中没有“Access-Control-Allow-Origin”标题
我正在尝试获取新闻网站的Feed。 以为我会使用谷歌的饲料API将feedburner饲料转换成JSON。 以下url将以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){ //..... } });
但它不工作,我得到以下错误
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”标题。 Origin'http:// localhost '因此不被允许访问。
我该如何解决?
我相信这可能是因为Chrome不支持localhost
通过Access-Control-Allow-Origin
– 请参阅Chrome问题
要让Chrome在标头中发送Access-Control-Allow-Origin
,只需将/ etc / hosts文件中的本地主机别名到其他域,如:
127.0.0.1 localhost yourdomain.com
然后,如果您使用yourdomain.com
而不是localhost
访问您的脚本,则调用应该成功。
如果您使用Google Crome浏览器,则可以使用扩展名进行破解。
您可以find一个Chrome扩展程序 ,在您的应用程序中即时修改CORS标头。 显然,这只是Chrome浏览器,但我喜欢它可以在任何地方进行零改动。
你可以使用它来在本地机器上debugging你的应用程序(如果一切正常工作)
注意 :如果URL被破坏,扩展名是“Access-Control-Allow-Origin:*” 。 我build议你在不使用自己的东西的时候禁用这个扩展,例如,youtube不能使用这个扩展。
试试这个 – 通过设置标题来设置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); } });
然后通过以下命令行打开Chrome来运行代码:
chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
如果您使用的是Chrome,也可以安装此扩展程序。
Access-Control-Allow-Origin: *
请在Spring引导控制器(类级别或方法级别)的backendside
使用@CrossOrigin
,因为Chrome的解决scheme错误'No 'Access-Control-Allow-Origin'
头部存在于请求的资源中。
这个解决scheme为我工作100%…
例如:class级
@CrossOrigin @Controller public class UploadController {
– – – 要么 – – – –
示例:方法级别
@CrossOrigin(origins = "http://localhost:3000", maxAge = 3600) @RequestMapping(value = "/loadAllCars") @ResponseBody public List<Car> loadAllCars() { Ref: https://spring.io/blog/2015/06/08/cors-support-in-spring-framework