Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取API错误-飞行前请求不存在';无法通过访问控制检查_Javascript_Rest_Fetch Api - Fatal编程技术网

Javascript 获取API错误-飞行前请求不存在';无法通过访问控制检查

Javascript 获取API错误-飞行前请求不存在';无法通过访问控制检查,javascript,rest,fetch-api,Javascript,Rest,Fetch Api,我正在尝试实现fetchapi以从服务器获取资源。我可以通过邮递员和将端点粘贴到浏览器中来检索资源。但是,当我尝试使用fetch api访问端点时,我得到以下错误: 当邮递员给我打电话时,我得到以下结果: 从应用程序拨打电话时,我得到以下信息: 我不得不隐藏到实际端点,因为它们是公司端点,我无法公开它们。如果这导致了一个问题,请让我知道,也许我可以使用添加更多信息 请求代码: 返回获取(url{ 方法:“get”, 标题:此。_headers() }) 。然后(数据=>{ 控制台日志(数据

我正在尝试实现fetchapi以从服务器获取资源。我可以通过邮递员和将端点粘贴到浏览器中来检索资源。但是,当我尝试使用fetch api访问端点时,我得到以下错误:

当邮递员给我打电话时,我得到以下结果:

从应用程序拨打电话时,我得到以下信息:

我不得不隐藏到实际端点,因为它们是公司端点,我无法公开它们。如果这导致了一个问题,请让我知道,也许我可以使用添加更多信息

请求代码:

返回获取(url{
方法:“get”,
标题:此。_headers()
})
。然后(数据=>{
控制台日志(数据);
返回数据;
})
.然后(此._检查状态)
。然后(res=>res.json());
_标题(auth){
让标题=新标题({
“内容类型”:“应用程序/json”
});
返回标题;
}
_检查状态(响应){
如果(response.status>=200&&response.status<300){
返回响应;
}否则{
let error=新错误(response.statusText);
error.response=响应;
投掷误差;
}
}

这通常发生在您发出跨域请求时。
要解决这个问题,你必须在你的服务器上启用CORS(跨来源资源共享)

请查看你的路由选项方法,你是否有意将选项动词改为404我刚刚更新了帖子,因为我意识到我忘记了为通话添加实际代码。你能详细说明一下吗?@Aron你能和API开发者确认CORS是启用的。我的问题是,如果服务器设置不正确,为什么在postman中可以这样做?因为浏览器限制跨域请求,所以postman不会限制这些请求。了解更多关于科索克的信息,谢谢。我想我假设邮递员的工作方式与浏览器相同。@crack_但为什么选项方法会返回404?。OPTIONS方法是一种验证客户端请求真实性的方法origin@Suresh这取决于服务器配置
return fetch(url, {
    method: 'get',
    headers: this._headers()
})
.then(data => {
    console.log(data);
    return data;
})
.then(this._checkStatus)
.then(res => res.json());


_headers(auth) {
    let headers = new Headers({
        'Content-Type': 'application/json'
    });

    return headers;
}

_checkStatus(response) {
    if (response.status >= 200 && response.status < 300) {
        return response;
    } else {
        let error = new Error(response.statusText);
        error.response = response;
        throw error;
    }
}