モバイルアプリでjquery ajaxを使用して、安らかなAPIを介してjsonデータを取得しています。私の安らかな API は、etags をサポートするように構成されています。私の安らかな API は別のサブドメインでホストされているため、クロスドメイン呼び出しを処理するように CORS を構成しました。私の開発環境では、モバイル アプリを test.domain.com で実行するように構成し、restful api を test2.domain.com で実行するように構成して、クロス ドメイン呼び出しをテストできるようにしました。これはすべてうまくいきます!私の ajax 呼び出しは、etags で期待するとおりに動作します。
json コンテンツを取得するための呼び出しを行います。
$.ajax({
ifmodified: true,
....
success: function(data){
}
ステータス 200 を取得し、成功コールバックのデータ変数にデータが含まれています。同じリソースに別の呼び出しを行います (変更は想定されていません) ステータス 304 が返され、成功コールバックのデータ変数にデータ (キャッシュからロードされたもの) が含まれます。
ここまでは順調ですね。
モバイル アプリと安静な API の両方を同じドメインに配置するように開発環境を構成すると、ここで問題が発生します。
$.ajax({
ifmodified: true,
....
success: function(data){
}
ステータス 200 を取得し、成功コールバックのデータ変数にデータが含まれています。同じリソースに別の呼び出しを行います (変更は想定されていません) ステータス 304 とデータ変数が undefined になります!!!!
この構成でjqueryがデータ変数にキャッシュにあるものを入力しない理由は何ですか? また、Ajax 呼び出しで CORS とクロスドメイン設定を削除しましたが、まだ運がありません。jquery 1.7.1 を使用しています。