2016-02-01 22 views
6

FETCHを使用する際に問題があります。React Native - Fetch POSTリクエストがGETリクエストとして送信されています

私は、反応ネイティブのFETCHを使用してPOSTリクエストを作成しようとしています。

fetch("http://www.example.co.uk/login", { 
     method: 'POST', 
     headers: { 
      'Accept': 'application/json', 
      'Content-Type': 'application/json' 
     }, 
     body: JSON.stringify({ 
      username: 'test', 
      password: 'test123', 
     }) 
    }) 

     .then((response) => response.json()) 
     .then((responseData) => { 
      console.log(
       "POST Response", 
       "Response Body -> " + JSON.stringify(responseData) 
      ) 
     }) 
     .done(); 
} 

私はチャールズを使用してこの呼び出しを検査するとき、それはGETリクエストと存在しない体にする必要があり、ユーザー名とパスワードとして記録されています。

enter image description here

誰もがこの問題に役立つことはできますか?

答えて

2

私は同じ種類の問題を抱えていました。あなたはオブジェクトを割り当てなければなりません。理由はわかりません。

let = {};

options.body = formdata;

options.header = header;

options.method = '投稿';

+1

これは意味をなさない。その結果、まったく同じオブジェクトになります。 – Tieme

+0

多分、ES6のこの新機能と矛盾しますか? http://www.2ality.com/2011/11/keyword-parameters.html – Kokizzu

3

これが私の仕事:

let data = { 
    method: 'POST', 
    credentials: 'same-origin', 
    mode: 'same-origin', 
    body: JSON.stringify({ 
    appoid: appo_id 
    }), 
    headers: { 
    'Accept':  'application/json', 
    'Content-Type': 'application/json', 
    'X-CSRFToken': cookie.load('csrftoken') 
    } 
} 
return fetch('/appointments/get_appos', data) 
     .then(response => response.json()) // promise 
     .then(json => dispatch(receiveAppos(json))) 
} 
3

をPOSTリクエストがHTTPS(HTTPではなく)サーバにいたとき、私はこの問題を持っていました。何らかの理由で、途中でGET要求に変換されます。

私が間違って行ったことは、https://myserver.com:443ではなく、http://myserver.com:80にリクエストを送信していたことが判明しました。適切なプレフィックスとポートに切り替えたら、要求はPOSTとして正しく送信されます。

+0

同じことが起こりました。 –

関連する問題