0

私は Ajax と MongoDB の両方の初心者です。Web ブラウザーを使用して MongoDB のデータの一部を視覚化したいと考えていました (現時点では、同じホストで実行されています)。これについては、XMLHttpRequests を使用してデータを取得できるのではないかと考えました。--rest オプションを指定して MongoDB を実行しています。Firefox で hxxp://localhost:28017/test_db/ss_test/ をロードすると、適切な応答 ( test_db データベース)。ここまでは順調ですね。

次に、ボタンの「onclick」に接続する次の JavaScript 関数を作成しました。

function makeRequest()
{
  var myrequest = new XMLHttpRequest();
  myrequest.onreadystatechange = function()
  {
    alert("status=" + myrequest.status + " readyState=" + myrequest.readyState)
    if (myrequest.status == 200 && myrequest.readyState == 4)
    {
      // ...do something with the response
    }
  }    
myrequest.open("GET", "http://localhost:28017/test_db/ss_test/", true);
myrequest.send();
}

そのため、Firefox で html ファイルをロードし、コンソールを開いてボタンをクリックすると、http 要求が実際に行われたことがわかります。ステータス コードは「HTTP/1.0 200 OK」であり、Content-Length: 219257 の応答があります。見栄えがします。ただし、XMLHttpRequest オブジェクトは status=200 を報告しません。ポップアップするアラートは、readyState が徐々に 1、2、4 になり、if ステートメントが決して true にならないため、一定のステータス 0 を報告します。

誰が私が間違っているのか教えてください。最初は、html がファイル プロトコルによってブラウザーに読み込まれたか、同じオリジン ポリシーに関連する問題が発生したためだと考えていましたが、html ファイルを localhost の Web サーバーに配置し、そこから読み込みました。そして何も変わっていません。返信ありがとうございます。

4

1 に答える 1

0

リクエストを処理する関数を作成する必要があります。

http://www.ibm.com/developerworks/web/library/wa-ajaxintro2/

http://www.ibm.com/developerworks/library/wa-ajaxintro3/

function makeRequest()
{
  var myrequest = new XMLHttpRequest();
  myrequest.onreadystatechange = create_this_function()
  {

  }    
myrequest.open("GET", "http://localhost:28017/test_db/ss_test/", true);
myrequest.send();
}
#
function create_this_function()
{
    alert("status=" + myrequest.status + " readyState=" + myrequest.readyState)
    if (myrequest.status == 200 && myrequest.readyState == 4)
    {
      // ...do something with the response
    }
}
于 2013-09-19T16:17:36.763 に答える