0

オフラインで動作する HTML/JS アプリケーションを作成しました。これは SD カードに保存され、デフォルトの 4.1 Android ブラウザを使用して実行されます。

インターネットでホストするためにjQueryを使用してAjaxリクエストを作成しています。私はローカルファイルシステムから実行しているので、明らかにクロスドメインリクエストです。サーバーには、このような CD 要求を可能にするヘッダー操作に基づくメカニズムがあります。厄介なコードの一部:

$.ajax({
    type: "POST",
    crossDomain: true,
    data : formData,
    cache: false,
    url: "http://someurlwhichhandlescrossdomain.com",
    success: function(data){
        alert("hurrayy!");

    },
    error: function(xhr, ajaxOptions, thrownError) {
        alert("bah :/");
        alert(xhr.status);
        alert(thrownError);
    }
});

問題は、データが正しく送信され、サーバーが要求を正しく登録しているにもかかわらず、エラー関数が常に実行されることです。xhr.status は常に 0 で、 throwError は空です。

デスクトップ上の Chrome でも同じコードが正しく動作します (アラート「万歳」)。

現在、私は に基づく回避策を使用してnavigator.onLineいます。値が true の場合、データがサーバーに正しく送信されていると想定します (サーバーから何も読み取る必要がないため)。ただし、接続は機能しているがサーバーが機能していない場合、私はそれを処理できないため、このソリューションは悪いです。

何か案は?

ありがとう、カロル

4

0 に答える 0