首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用has in javascript请求API有CORS策略错误。

使用has in javascript请求API有CORS策略错误。
EN

Stack Overflow用户
提问于 2019-05-30 13:50:30
回答 1查看 7.2K关注 0票数 0

我试图在javascript代码中使用fetch调用一些API。我在我的机器上使用ReactJs进行开发,并在同一网络中进行另一个开发,在另一台机器上使用.net开发API。使用postman,我可以调用API,但是使用fetch no。我试图在其他服务器中调用另一个API,结果是成功的。

我正在使用fetch,也尝试使用axios。我在堆栈溢出的其他问题中发现了这个API:https://gturnquist-quoters.cfapps.io/api/random。答案是要尝试获取它们,而我尝试再次抛出相同的错误。

我的代码用于获取gturnquist:

代码语言:javascript
复制
const myHeader = new Headers();
myHeader.append('Content-Type', 'application/json');
fetch('http://gturnquist-quoters.cfapps.io/api/random', {
  method: 'GET', headers: myHeader,
})
 .then((res) => {
   console.log(res);
   return {};
 })
 .then(res => console.log(res));

以及获取我需要的API的代码:

代码语言:javascript
复制
const myHeader = new Headers();

const token = 'mytoken';
myHeader.append('id-tenant', token);
myHeader.append('Content-Type', 'application/json');

const id = 'myid';
const url = 'myurl';

fetch(`http://10.1.1.35/${url}/${id}`, {
  method: 'GET',
  headers: myHeader,
}).then(res => res.json()).then(res => console.log(res));

当我试图调用API时,出现了这个错误。

选项http://10.1.1.35/url/id 503 (服务不可用) 从源“http://10.1.1.35/url/id”获取“http://localhost:3000”的访问已被CORS策略阻止:对飞行前请求的响应不通过访问控制检查:请求资源上不存在“访问控制-允许-原产地”报头。如果不透明响应满足您的需要,请将请求的模式设置为“no- CORS”,以获取禁用CORS的资源。 Uncaught (承诺) TypeError:未能获取

是服务器端错误还是javascript错误?

在我的服务器中,API被配置为拉杰库马尔·彼得的答案。

编辑:我的网络错误

我在尝试处理错误时所遇到的问题:

用instagram api获取CORS错误

在fetch api中启用CORS

使用fetch API GET请求管理CORS

错误获取被CORS策略阻止。

对飞行前请求的响应没有通过访问控制检查

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-30 14:00:04

当从web浏览器执行API调用时,它通常会执行名为“飞行前检查”的操作。这基本上就是浏览器向API发送请求的地方(在您自己的API调用之前),以检查它允许做什么,甚至是否值得发送实际的请求。

为此,它使用OPTIONS方法(而不是GET,POST .etc)。

如果您的API端点尚未配置为接受选项请求,则来自浏览器的预运行请求将失败--它将中止发送请求。

要解决问题,需要配置API以接受OPTIONS方法。您还应该检查允许哪些源(连接到API的客户端的IP地址)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56379638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档