0

次のコードは、Safari および Chrome の iPad および iPhone (4、5) で正常に動作します。対照的に、Android デバイスとデスクトップ ブラウザーでは ajax 呼び出しは機能しません (onError 関数に直接実行されます)。

絶対 URL を相対 URL に交換すると、これら 2 つのグループで成功/失敗の結果が逆になります。

この問題を回避するにはどうすればよいですか (jquerymobile 1.3.0 ベータ版を実行しています)。ありがとう/ブルース

$(document).ready(function() {
$("#submit").click(function(){
  var formData = $("#loginf").serialize();
  $.ajax({
    type: "POST",
    url: "http://mydomain.org/m2/scripts/site/bpg_process.asp?id=lg",
    cache: false,
    data: formData,
    dataType: 'json',
    success: onSuccess,
    error: onError
  });
  return false;
});
});
4

2 に答える 2

0

クロスドメイン Ajax 呼び出しが許可されていないことをご存知ですか? 問題は、テストしているブラウザではなく、リクエストを行っている URL にリンクされている可能性があります。詳細については、http: //en.wikipedia.org/wiki/Same_origin_policyを参照してください。

ここで重要なことは、ポリシーがさまざまなサブドメインを除外することです。元。http://www.mydomain.orgからhttp://mydomain.org にリクエストを送信すると失敗します。逆の場合も同様です。

あなたの場合、私が通常行うことは/m2/scripts/site/bpg_process.asp?id=lg、プロトコルとホストなしで完全な URL「」を使用することですが、「/」で始まるため、URL ツリーのどこからでも参照できます。

使用している「動作しない」「相対 URL」は何ですか?

于 2013-01-29T11:31:10.303 に答える
0

ダルマが言ったように。「クロスドメイン Ajax 呼び出しは許可されていません」。

代わりに絶対「ローカル」パスを使用してください。

リンクの先頭にあるスラッシュ「/」は、ドキュメント ルートを参照します。

外部ドメインを参照する必要がある場合は、外部ページを呼び出すローカル .asp ドキュメントを ajax を使用して呼び出し、必要なデータを json で返します。

これがaspで何であるかはわかりませんが、phpではcurlが機能します。

于 2013-01-29T18:56:30.350 に答える