私は 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 サーバーに配置し、そこから読み込みました。そして何も変わっていません。返信ありがとうございます。