No' Access-Control-Allow-Origin

时间:2018-06-04 20:53:19

标签: javascript api cors

您好我是javascript和API调用的新手,我尝试使用以下javascript代码进行API调用:

UserManager

当我刷新页面时,我收到以下错误:

  

无法加载   https://labs.bible.org/api/?passage=random&type=json&callback=myCallBackFcn:   No' Access-Control-Allow-Origin'标题出现在请求的上   资源。起源' null'因此不允许访问。

任何人都可以帮我吗?另外,你能解释一下如何修复它吗?

1 个答案:

答案 0 :(得分:1)

你有一个跨性别的问题,让我们解释一下。

浏览器从example.com网站下载了js文件,现在js文件希望将ajax发送到xyz.org网站,这是一个跨源请求,所以浏览器要求xyz.org"你允许的例子。 com访问您的资源" ?浏览器知道来自“访问控制 - 允许 - 来源”的答案。响应头。

但xyz.org没有发送此标题,因此浏览器认为xyz.org并不希望除了他以外的任何人访问他的资源,因此浏览器只是拒绝您的请求。

请注意,当您访问以file://开头的网址中的js文件并且此处的origin设置为null时,也会发生跨源请求,因为js不是从任何服务器下载的null与xyz.org不同。

解决方案:如果您控制xyz.org,只需将Access-Control-Allow-Origin添加到响应标头,您就可以在互联网上查找此标头的值格式。

如果它是第三方网站,你必须打电话给它的管理员,如果他们拒绝添加标题,那么你只是在纯js中没有解决方案但是只有浏览器尊重这个政策,如果你制作桌面应用程序然后它并不关心,其中一个例子是Postman the REST API tester。