为什么在Vue中使用fetch时PUT请求给予出错?

8e2ybdfx  于 2023-03-24  发布在  Vue.js
关注(0)|答案(1)|浏览(187)

我尝试发送PUT请求,但控制台给出错误。

export function putUserData() {
    fetch(`${url}/user/${getCookie("ID")}`, {
        method: "PUT",
        headers: {
            "Authorization": `Bearer ${getCookie("TOKEN")}`
        },
        body: JSON.stringify({
            "first_name": userData.value.first_name,
            "middle_name": userData.value.middle_name,
            "last_name": userData.value.last_name
        })
    }).then(response => {
        if (response.ok) {
            return response.json()
        }
        switch (response.status) {
            case 400:
                console.log("Incorrect data");
                break;
        }
    }).then(data => {
        router.push("/auth");
        console.log(data);
    }).catch(err => {
        console.error("Cannot fetch" + err);
    });
}

控制台中的网络请求:

控制台中的错误:

我想了解为什么它不发送请求,虽然它发送POST请求

dsekswqp

dsekswqp1#

您的后端接受CORS POST请求,但不接受PUT。您应该修改那里的header设置,以包含使用Access-Control-Allow-Methods响应header的PUT。
PHP示例:

header("Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS");

更多信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods

相关问题