バニラJS(jQueryなし)でPOSTメソッドを動作させる方法を教えてください。REST API - バニラのPOSTメソッドJavaScript/AJAX - エラー400(不正リクエスト)
私はこのコードでそれをやろうとしています:
var call =
{
"filterParameters": {
"id": 18855843,
"isInStockOnly": false,
"newsOnly": false,
"wearType": 0,
"orderBy": 0,
"page": 1,
"params": {
"tId": 0,
"v": []
},
"producers": [],
"sendPrices": true,
"type": "action",
"typeId": "",
"branchId": ""
}
};
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://www.alza.cz/Services/RestService.svc/v2/products');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
if (xhr.status === 200) {
console.log('OK ' + xhr.responseText);
}
else if (xhr.status !== 200) {
console.log('Request failed. Returned status of ' + xhr.status);
}
};
xhr.send(call);
、常にエラー400(不正な要求)を取得。 私はjQueryでそれを呼び出そうとしましたが、それは動作していますが、私はそれを普通のJSで動作させる必要があります。
どうしてうまくいかないのですか?これは、サーバーのデータにアクセスするAJAXのJavaScriptコードを遮断するアクセス制御 - 許可 - 起源の応答です
addData({
"filterParameters": {
"id": 18855843,
"isInStockOnly": false,
"newsOnly": false,
"wearType": 0,
"orderBy": 0,
"page": 1,
"params": {
"tId": 0,
"v": []
},
"producers": [],
"sendPrices": true,
"type": "action",
"typeId": "",
"branchId": ""
}
}
);
function addData(data){// pass your data in method
$.ajax({
type: "POST",
url: "https://www.alza.cz/Services/RestService.svc/v2/products",
data: JSON.stringify(data),// now data come in this function
contentType: "application/json; charset=utf-8",
crossDomain: true,
dataType: "json",
success: function (data, status, jqXHR) {
console.log(data);// write success in " "
},
error: function (jqXHR, status) {
// error handler
console.log(jqXHR);
alert('fail' + status.code);
}
});
}
私はあなたが 'JSON.stringify(コール)は' –
@Tomosウィリアムズは先端をありがとうする必要があると思う、I 'xhr.send(JSON.stringify(call));を試してみましたが、運がいいわけではありません。まだエラー400 –
あなたは何を得ていますか? ブラウザの開発者ツールの[ネットワーク]タブでリクエストのプレビューを確認できますか? – JeBokE