0

jQueryのajax関数を使ってサービスコールをしようとしています。IE と Chrome の両方のローカル環境でテストしましたが、問題なく動作します。ただし、サイトを本番環境にデプロイした後、サービス呼び出しを Chrome でしか機能させることができません。インスペクタでコードをステップ実行すると、IE の ajax 関数に組み込まれていることがわかりますが、リクエストは発行されません。私はフィドラーを使用しており、IEではなくChromeを使用しているときに呼び出しを見ることができます。

var customers;

function AutoComplete(TheId) {

    if (!customers) {
        $.ajax({
            type: "GET",
            url: "api/customerapi",
            dataType: "json",
            async: false,
            success: function (data) {
                customers = data;
            }
        });
     }

.... further code ....
}

ここで何がうまくいかないのでしょうか?

4

1 に答える 1

1

あなたのコードから続く穴はたくさんありません。詳細と作成したフィドルへのリンクを提供する必要があります。

考慮すべきいくつかの一般的な事項:

https:// リクエストを http:// で行っていますか、それともその逆ですか? これにより、本番環境 (https) にデプロイした後に IE を使用するときに問題が発生しました。セキュリティが侵害されていると不平を言い、要求さえしません。

また、よほどの理由がないasync: false限り使用しないでください。リクエストが完了するまで、ユーザーのブラウザをフリーズします。IE では、ページだけでなくブラウザ全体がフリーズするため、特に問題があります。jQuery では非同期を簡単に使用できるため、同期要求を使用する理由はほとんどありません。ブラウザをフリーズすることなく、同期とまったく同じことを行うことができます。必要なすべてのデータを収集し、そこから先に進みます。質問が非同期リクエストの使用方法である場合は、質問を書き直すことをお勧めします。

これらは非常に一般的な提案です。質問をより具体的にすると、同様に具体的な回答が得られる可能性があります。

于 2013-02-26T15:20:55.413 に答える