1

次のコードは、リモート サーバーを XHR する目的で十分ですか? 通常の XHR コードから変更された唯一の点は、完全なサーバー URL を XHR オブジェクトの open メソッドの URL パラメーターに入れたことです。それで十分かどうかわかりませんか?うまくいきませんでした。だから私は何が欠けているのか分かりません。

<script type="text/javascript">
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","http://insertURLofRemoteServerHere.com?parameter1=true",true);
xmlhttp.send();
}
</script>
4

2 に答える 2

1

通常、Javascript は、JavaScript のロード元のサーバーにのみ xhrs を送信できます。これは、Same Origin Policyと呼ばれます。それがあなたを止めていると思います。

于 2012-04-21T02:02:20.033 に答える
1

あなたのコードはほとんどの場合正しいようです。ブラウザ間の互換性などを処理しています。ただし、Same Origin ポリシーでは、リモート サーバー上のスクリプトからの応答を受信することはできません。

リモート サーバーがJSON-P応答形式をサポートしている場合、これを回避できます。

別の回避策は、サーバーがCross Origin Resource Sharingをサポートしている場合です。ただし、個人的な経験からすると、これはむらがあります。サーバーがサポートしている場合は、JSON-P を使用します。

(補足: Jquery のようなライブラリ/フレームワークを使用すれば、作業はずっと簡単になります。上記のコード スニペットは 3 ~ 4 行のコードに要約でき、フレームワークはブラウザ間の互換性を処理します。)

于 2012-04-21T02:04:04.693 に答える