【问题标题】:React, Axios issue: Response for preflight does not have HTTP ok status ( 404 not found )React,Axios 问题:预检响应没有 HTTP ok 状态(未找到 404)
【发布时间】:2019-02-27 21:06:46
【问题描述】:

我一直在尝试使用带有基本身份验证的 axios,但它总是返回 not found。

这是我的代码

const ROOT_URL='http://localhost/b2b_ecom/b2b-api/index.php/api/';

export function login () {


    return function(dispatch)
    {

        const api = axios.create({
            mode: 'no-cors',
            credentials:'include',
            redirect: 'follow',
            auth: {
                username: 'mouad@b2b.dz',
                password: '123456'
            },
            headers: {
                'Content-Type': 'application/json',
            }
        });

        api.post(`${ROOT_URL}site/login `).then(function(response)
        {
            dispatch({LOGIN,payload:response.data});
            return true;

        }).catch(function(error)
        {
            return error;
        });

    } ;

}

这是我得到的错误:

选项http://localhost/b2b_ecom/b2b-api/index.php/api/site/login 404(未找到)
无法加载http://localhost/b2b_ecom/b2b-api/index.php/api/site/login:预检响应没有 HTTP ok 状态。

Screenshot

【问题讨论】:

  • 404 表示您的 PHP 服务器无法在 http://localhost/b2b_ecom/b2b-api/index.php/api/site/login 找到资源 我们真的无法解决这个问题。您需要检查网址是否正确。
  • 这个问题与JavaScript无关; (如果 URL 中没有拼写错误)您应该描述您使用哪个服务器以及如何配置其路由。还请为您的问题添加适当的标签
  • 实际上,我使用的是 Google chrome CROS 扩展。当我禁用它时,错误会发生变化:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'localhost:3030' 不允许访问。 P.S:是的,它与邮递员一起正常工作

标签: authentication axios basic-authentication


【解决方案1】:

我认为浏览器正在向请求添加访问控制标头。 检查以下事项

1) 当您从邮递员或其他此类 api 客户端访问时,此 api 应该可以正常工作。 (即使卷曲也可以)

2) 尝试在服务器上为此请求添加 Access-Control-Allow-Origin as * 并查看它是否有效。

【讨论】:

  • 实际上,我使用的是 Google chrome CROS 扩展。当我禁用它时,错误会发生变化:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'localhost:3030' 不允许访问。 P.S:是的,它与邮递员一起正常工作
猜你喜欢
  • 1970-01-01
  • 2019-04-03
  • 2019-02-10
  • 2019-02-04
  • 2019-02-02
  • 2018-06-17
  • 2019-03-15
  • 1970-01-01
  • 2021-07-11
相关资源
最近更新 更多