1

AJAX 呼び出しがローカル ホストで正常に動作している場合、ホスト サーバーでの動作を妨げる可能性のあるものは何ですか? AJAX 呼び出しからエラーを返そうとしましたが、「未定義」しか返されません。ログに情報が追加されていないため (そして明示的に呼び出しを追加したため)、実際のページ メソッドが呼び出されているとは思いません。ローカル マシンで問題を再現できないので、調べる必要がある可能性のある領域を知っている人はいますか?

ありがとう

4

2 に答える 2

0

ブラウザにある URL と、Ajax 呼び出しがヒットしている URL は? ブラウザには、クロス ドメイン AJAX 呼び出しを許可しない「セキュリティ」制約があります。たとえば、ローカル ファイルをロードしている場合:

http://localhost:20080/myCustomPage.html

そのページ内で ajax 呼び出しを行います

http://search.twitter.com/search?q=test

ブラウザからセキュリティ警告が表示されます。ブラウザによっては、これが下隅の警告アイコン (IE) または javascript ログ (firefox) のエラーとして現れる場合があります。

1 つの特定のケースでこれを回避する方法があります。その場合は、GET リクエストです。「ajax」呼び出しを行う代わりにこれを行うには、タグを含めます。そのスクリプト タグが読み込まれ、読み込まれます。ここでのキャッチは、呼び出しの結果で呼び出される、あなたの側で実装できる「コールバック」メソッドを含める必要があるということです。

したがって、次のような応答の代わりに:

{
    "first_name": "peter",
    "last_name": "parker"
}

あなたは戻る必要があるでしょう

myCallBackFunction({
    "first_name": "peter",
    "last_name": "parker"
});

この例では JSON を使用していますが、関数が呼び出される限り、XML、HTML、またはその他の結果形式を簡単に使用できます。

myCallbackFunction("INSERT RESPONSE TEXT HERE")

このメソッドは一般にJSONPと呼ばれ、クライアントの観点から jquery などの一般的な JavaScript ライブラリに実装されています。サーバー側を制御する場合は、callBackFunction ラッパーをハードコーディングするか、クライアントが設定できるパラメーターを公開する必要があります。残念ながら、ライブラリを所有していない場合、サービスの所有者がその機能を既に提供していない限り、できることはあまりありません。幸いなことに、このようなことを行う Web 2.0 サービスのほとんどは、すでにその機能を実装しています。

于 2010-04-23T02:25:36.203 に答える
0

私はそれを修正することができました。IIS7 を統合モードで実行すると問題が発生しました。すべてのモジュールを to と my to に移動しました (これもセクションにあります)

それが他の誰かに役立つことを願っています。

より詳しい情報

于 2010-04-23T03:09:18.707 に答える