簡體   English   中英

帶有 GET 主體的 Javascript REST API

[英]Javascript REST API with body in GET

我在 Javascript(前端)工作,有一個同事在后端使用 NodeJS。 調用 GET 請求時,他要求我將數據放入 body 中,但我不知道該怎么做。 (如果我將此代碼用於 POST 請求,則它工作正常)。 你能告訴我這是否可能以及如何做到這一點? 他說這是可能的,但我在谷歌上搜索了很多,找不到正確的方法來做到這一點。 我得到的錯誤: “無法在 'Window' 上執行 'fetch':使用 GET/HEAD 方法的請求不能有正文。”

    let URL = "http://localhost:3000/verifyUser";
    let token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2NjJDMTRBNk";
    
    fetch(URL, {
        method: request,
        mode: 'cors',
        body: JSON.stringify({
            user: 'Carlos6',
            password: '543534543',
            email: "algo6@gmail.com"
        }),
        headers: {
            'Accept' : 'application/json',
            'Content-type': 'application/json; charset=UTF-8',
            'auth-token': token
        }
    }).then(function (response) {
        if (response.ok) {
            return response.json();
        }
        return Promise.reject(response);
    }).then(function (data) {
        console.log(data);
    }).catch(function (error) {
        console.warn('Something went wrong.', error);
    });

您正在使用 HTTP GET 並發送正文。

如果要發送正文 (JSON),則應使用 PUT 和 POST。

最好的可能是:

  • 將您的客戶端代碼更改為method: "PUT"
  • 更改服務器以訪問 PUT 請求

如果您想知道選擇哪一個,請查看這個問題:( REST 中的 PUT 與 POST

如果你想發送一個帶有正文的請求,那么你應該發出一個 POST 請求而不是一個 GET 請求。 GET 請求不能有其性質和主要目標的主體。 GET-request 的所有參數必須僅在 URL 本身中指明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM