Axios:获得两个请求选项和POST

Lia*_*iam 13 javascript reactjs redux react-redux axios

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

也许是因为API URL与react不在同一台服务器上.

POST: 在此输入图像描述

选项: 在此输入图像描述

这是代码:

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);
            })
    }
}
Run Code Online (Sandbox Code Playgroud)

Yan*_*Tay 19

通过AJAX的非简单CORS请求是预先通过的.在这里阅读更多相关信息.这是一种浏览器行为,并不是axios特有的.这种行为没有任何本质上的错误,如果它对你有效,你可以离开它.

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

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

  2. 使您的CORS请求变得简单.你将不得不改变Content-Typeapplication/x-www-form-urlencodedmultipart/form-datatext/plain.不application/json.

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

  • 我明白你的意思,但肯定设置 `Access-Control-Allow-Origin: *` 不会“禁用 CORS” - 它允许来自*任何地方*的 CORS 请求。 (3认同)