Axios:获得两个请求OPTIONS& POST

时间:2018-01-15 00:23:41

标签: javascript reactjs redux react-redux axios

我有一个使用Redux和React构建的React应用程序我尝试发布数据。一切正常,但我不知道为什么我收到两个请求OPTIONS& POST

也许是因为API URL与反应不在同一台服务器上。

POST: enter image description here

OPTIONS: enter image description here

以下是代码:

const url = 'http://rest.learncode.academy/api/johnbob/myusers';

export function postUsers(username, password) {
    let users = {
        username,
        password,
    };
    return{
        type: "USERS_POST",
        payload: axios({
            method:'post',
            url:url,
            data: users,
        })
            .then(function (response) {
                console.log(response);
            })
            .catch(function (error) {
                console.log(error);
            })
    }
}

1 个答案:

答案 0 :(得分:8)

通过AJAX的非简单CORS请求已预先通过。阅读更多相关信息here。这是一种浏览器行为,并没有特定于axios。这种行为没有任何内在错误,如果它对你有用,你可以离开它。

如果你坚持要摆脱它,有几种方法可以解决:

  1. 您可以在服务器上设置Access-Control-Allow-Origin: *以禁用CORS。

  2. 使您的CORS请求变得简单。您必须将Content-Type标题更改为application/x-www-form-urlencodedmultipart/form-datatext/plain。否application/json

  3. 如果OPTIONS请求没有阻止你,我会说保持原样。