我正在尝试在我的 javascript 代码中使用 fetch 调用一些 API。我正在我的机器上使用 ReactJs 进行开发,并在同一网络中进行另一项开发,在另一台机器上使用 .net 开发 API。使用邮递员,我可以调用 API,但不能使用 fetch。我尝试在其他服务器中调用另一个 API,结果成功。
我正在使用 fetch 并尝试使用 axios。我在堆栈溢出的其他问题中发现了这个 API:https : //gturnquist-quoters.cfapps.io/api/random。答案是尝试获取它们,而我尝试再次抛出相同的错误。
我获取 gturnquist API 的代码:
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:
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://localhost:3000 '获取在 ' http://10.1.1.35/url/id ' 的访问已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:否-Control-Allow-Origin' 标头存在于请求的资源上。如果不透明响应满足您的需求,请将请求的模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。
Uncaught (in promise) TypeError: Failed to fetch
这是服务器端错误还是javascript错误?
在我的服务器中,API 的配置类似于Rajkumar Peter的回答
编辑:我的网络错误
我已经看到尝试处理我的错误的问题:
使用 instagram api 获取 CORS 错误
在获取API 中启用 CORS
管理 CORS 与获取 API GET 请求
React fetch has error fetch is Blocked by CORS policy
对预检请求的响应未通过访问控制检查