6

ローカル Apache インスタンス ( /test) のページで呼び出される関数があり、サブページ ( /test/info)を呼び出してjQuery.ajax正しく AJAX 呼び出しを行い、FF、Safari、Chrome でデスクトップの応答からコンテンツを動的にロードしますが、 iOS エミュレーター。呼び出しは行われず、ページが更新されます。

window.getInfo = function ( event ) {
  console.log('1) prior to $.ajax');
  $.ajax({
    url: 'http://localhost/test/info',
    dataType: 'html',
    beforeSend: function(xhr) { 
      console.log('2) beforeSend'); 
    },
    success: function(data, textStatus) {
      console.log('3) success');
      if ( textStatus == 'success' ) {
        // doing stuff with data
      }
    }
  }).always( function() { console.log('4) always'); });
};

デスクトップ ブラウザからはすべてのログが出力され、私の Apache サーバーは でリクエストを報告しますが/test、iOS エミュレータの Safari では、'1) prior to $.ajax''2) beforeSend'ログのみが出力され、Apache に対して行われる次のリクエストは/test.

ここで何が起こっているのか、iOS 自体を動作させる方法を知っている人はいますか?

更新:async: false属性をajax呼び出しに追加すると、すべてのログが出力され、リクエストが行われるため、基本的に問題が修正されました。ただし、ページは引き続きリロードされます。これは、iOS でのイベントの伝播に関連する別の問題であると考えられます。

4

1 に答える 1