JSONオブジェクトをXMLHttpRequest()に送信できません。しかし、send()で文字列データを送信すると、それが動作します。たとえば、次のコードが動作します。JSONオブジェクトをXMLHttpRequestに送信できません
var xhr = new XMLHttpRequest();
var url = 'https://xyz.info/api/contacts';
xhr.open("POST", url,true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {//Call a function when the state changes.
if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
// Request finished. Do processing here.
}
}
xhr.send("apikey=ee694eabf9e3&firstname=Raja1&lastname=Kumars&phone=123456");
ただし、JSONを使用してデータを送信しようとすると、URLに何もポストされません。次のコードは動作しません。
var xhr = new XMLHttpRequest();
var url = 'https://xyz.info/api/contacts';
xhr.open("POST", url,true);
//xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function() {//Call a function when the state changes.
if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
// Request finished. Do processing here.
}
}
xhr.send(JSON.stringify({
'apikey' :'ee6915d4ee4b4df66bba82277e3',
'firstname' : 'Kumar',
'lastname' : 'Sunder',
'phone':'5557773334'
}));
2番目の例では、文字列を送信しています。 jsonオブジェクトではありません。 – Matthias
@Matthiasしかし、JavaScriptオブジェクトの文字列表現です。私はまだjsonオブジェクトが何であるか(存在しない)は分かりません。 – James
ダムの質問ですが、APIは 'application/json'タイプの投稿をサポートしていますか?あなたのコードが実際に投稿しているものを見るためにブラウザのdevtoolsのネットワークタブをチェックしましたか? – James