JS関数を呼び出すと、投稿要求が送信されることを達成しようとしています。私のブラウザでは、私は送るでしょう:JavascriptのシリアライズされたPOST
http://myuser:[email protected]:80/api/callAction?deviceID=185&name=turnOn
これは動作します。しかし、私のコードではそうではありません。
重要事項: - Chromeはエラーを発生させます:リクエストはアクセスコントロールをパスしません。 Chromeでこれを無効にすると、このエラーは表示されません(ただし、サーバーからの応答はありません)。
<script type="text/javascript">
function changestate() {
var http = new XMLHttpRequest();
http.withCredentials = true;
var user = "bassie"
var pass = "password"
var url = "http://hc2/api/callAction";
var params = "deviceID=185&name=turnOff";
http.open("POST", url, true);
http.setRequestHeader("Authorization", "Basic " + user + ":" + pass);
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
alert(http.responseText);
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(params);
}
</script>
「hc2」はJavascriptでWebページを含むサーバーの名前ですか? – Barmar
問題を探していただきありがとうございます。 HC2は、ポストリクエスト(ターゲットサーバ)を取得するサーバの名前です。 – Bassie
リクエストを送信しているサーバーの名前でもない場合は、クロスドメインAJAXを実行しています。 – Barmar