XMLHttpRequest POSTを使用してSOAPサービスを呼び出しています。私はキャッシュをオフにすると、http要求はIEで正常に動作します。私は関数を呼び出して正しいsoap応答xmlを取得することができます。しかし、FirefoxやChromeでこれを実行すると、httpリクエストオブジェクトに本文のコンテンツがないように見えます。以下は私のコードです:XMLHttpRequestはFirefoxまたはChromeでリクエスト本体を送信しません。
var xmlhttp = null;
if(window.XMLHttpRequest) {
alert("supports XMLHttpRequest");
xmlhttp = new XMLHttpRequest();
} else {
// Internet Explorer
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
xmlhttp.open("POST", "http://www.zazzycard.com:22080/eBizCard/ws/eBizCardService", true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
alert(xmlhttp.responseText);
alert(xmlhttp.responseXML);
}
}
xmlhttp.setRequestHeader("SOAPAction", "http://ws.ebizcard.com/AuthenticateUser");
xmlhttp.setRequestHeader("Content-Type", "text/xml");
xmlhttp.setRequestHeader("Content-Length", 1000);
xmlhttp.setRequestHeader("Cache-Control", "max-age=0");
xmlhttp.send(xml);
Firefoxでこれが動作しない理由を知っている人はいますか?ありがとう!
xmlhttp.send(xml) –
ありがとうございました。私はfirefoxがPOSTデータを送信していない理由を理解しました。サイト間の呼び出しのために、firefoxは実際にOPTIONSリクエストをサーバーに送信して許可を求めるためにサーバーに実際にプリフライトを行います。私のサーバはこのOPTIONSリクエストを処理せず、爆発します。私は、飛行前のリクエストを避けるためにsetRequestHeader()呼び出しを削除しなければなりませんでした。しかし、サービスがPOST要求を正しく処理できるようになったとしても、受信した応答は空/ヌルです。私は非常に困惑し、この時点で不満です。 – Kang
これを参考にしてくださいhttps://developer.mozilla.org/en/HTTP_access_control – Kang