2017-11-12 7 views
0

私は次のコードでurlへの投稿リクエストを作成しようとしています。 オブジェクトをhttp.send(params)関数に渡すと、(400)不正な要求エラーが発生します。 ここで問題をトレースすることはできません。http.send()関数でオブジェクトを渡す方法は?

 var http = new XMLHttpRequest() 
     var url = 'http://somerandomurl' 
     http.open('POST', url, true) 
     http.setRequestHeader('content-type', 'application/json') 
     http.setRequestHeader('accept', 'application/json') 
     http.onreadystatechange = function() { 
     if (http.readyState === 4 && http.status === 200) { 
      returndata = http.responseText 
      console.log(JSON.parse(returndata)) 
     } 
     } 
     http.send(params) 

ソリューション:http.send(JSON.stringify({ 'メール':params.email、 'パスワード':params.password}))それは私のために働きました。あなたはそれを https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#A_brief_introduction_to_the_submit_methods

どちらかを行うための3つの方法のいずれかを使用する必要があります

+1

paramsのデータは何ですか?また、サーバーサイドのコードを投稿してください。あなたは郵便配達員または残りのクライアントとのリクエストを成功させることができますか?もしそうなら、上記のコードに問題があるかもしれません。さもなければ、サーバーサイドコードの問題かもしれません。 –

+1

'params'オブジェクトが有効なJSONですか?あなたのコードは私のために働く。 –

+0

@KrishnadasPCそれはこの関数に渡されたjson完全オブジェクトでした。 –

答えて

1

あなたの問題は、JSONではなくオブジェクト全体を送信しようとしていることです。これを行う正しい方法は、使用することですhttp.send(JSON.stringify(params))

+0

それは働いた。ありがとう。 –

1

、あなたはAxiosを取ることができます。

1

あなたは、このための新しいfetch API使用することができますが、それは死んで簡単かつ少ないコードになり

// Call the fetch function passing the url of the API as a parameter 
fetch(url) 
.then(function(response) { 
    // Your code for handling the data you get from the API 
}) 
.catch(function() { 
    // This is where you run code if the server returns any errors 
}); 

また、あなたの初心者は、それが迅速に作業物事を取得し、あなたがより速くあなたの問題を解決するかどうか。

関連する問題