2017-09-18 37 views
1

我需要做一個提取請求 像這樣 in Postman如何使用formData執行ReactNative中的發佈請求

而我已經試過:

let formData = new FormData(); 
     formData.append('username', String(username)); 
     formData.append('password', String(password)); 
    let init = { 
    method: 'POST', 
    header:{ 
     'Content-Type': 'application/x-www-form-urlencoded' 
    }, 
    body: formData 
} 
    fetch(url, init) 

這是成功的郵遞員,但與取與沒有參數沒有返回400錯誤而失敗。希望一些幫助,感謝

所以我改變了我的代碼

var details = { 
      'username': '123', 
      'password': '123', 
     }; 
     var formBody = []; 
     for (var property in details) { 
     var encodedKey = encodeURIComponent(property); 
     var encodedValue = encodeURIComponent(details[property]); 
     formBody.push(encodedKey + "=" + encodedValue); 
    } 
     formBody = formBody.join("&"); 

     let init = { 
     method: 'POST', 
     header:{ 
      'Accept': 'application/json', 
      'Content-Type': 'application/x-www-form-urlencoded' 
     }, 
     body: formBody 
    } 
     fetch(url, init) 

卻得到了一個相同的錯誤

控制檯formBody:

username=123&password=123 

我的頭關鍵是錯了,那是故障

應該是:

​​3210

代替

let init = { 
       method: 'POST', 
       header:{ 
        'Accept': 'application/json', 
        'Content-Type': 'application/x-www-form-urlencoded' 
       }, 
       body: formBody 
      } 
+0

我發現我的內容類型在請求中變成了「text/plain; charset = UTF-8」。但我仍然不知道爲什麼。 – Lyle

+0

我的頭鑰匙是錯的。那是錯誤。 – Lyle

回答

0

狀態代碼400意味着你發送一個錯誤的請求,即其他服務器預期的東西。

在這種情況下,您發送原始multipart/form-data(郵遞員的第一個選項),而你說你發送x-www-form-urlencoded在你的頭。

既然你想根據你的郵差截圖使用後者,你必須發送你的身體x-www-form-urlencoded格式。

+0

如何在x-www-form-urlencoded中格式化我的身體? – Lyle

+0

我第一次使用JS,對不起。 – Lyle

+0

如何在x-www-form-urlencoded中發送你的身體是一個不同的問題,但你可能會找到你的答案[here](https:// stackoverflow .com/a/37562814/3990318) –

相關問題