0

ログインするために jquery を使用して ajax リクエストを行う uiWebview があります。これは、モバイル サファリおよびすべてのブラウザから完全に機能します。

インストール後に初めてアプリケーションを実行すると、ajax リクエストが送信されたように見えますが、応答が受信されず、ajax リクエストの失敗または完了イベントも発生しません。

ここにあるメソッドを使用しました: UIWebViewDelegate not monitoring XMLHttpRequest?

リクエストが実際に送信されているかどうかを監視し、送信されているように見えますが、応答が受信されていないことを確認します。

その後、アプリを終了し、実行中のプロセスを強制終了して再起動すると、すべてが完全に機能します。最初の実行で機能しない原因は何ですか?

function makeLoginRequest(){    
//alert('about to make login request');

var loginInfo='{"username":"'+$("#tbUserName").val()+'","password":"'+$("#tbPassword").val()+'"}';      
jQuery.ajaxSetup({ 'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript,application/javascript,text/html,application/json")} });

var loginRequest=$.ajax({
      type:'POST',
      url: 'http://ourURL.com/api/user/login.json',
      data: loginInfo,
      contentType: 'application/json', 
      dataType: 'json',
      success: function(data){
          var sessionID = data["sessid"];
          var session_name= data["session_name"];
          var userID=data.user["uid"];  
          redirectString ='ProfileView.htm?uid='+userID+'&sessionID='+sessionID+'&session_name='+session_name;
          saveUsername();
          $('window').attr('location', redirectString).delay(1000);
          if(enableConsoleLogging)console.log("login attempt succeded.");
          logDeviceData();
          setTimeout(function (){window.location=redirectString;},0);
      }
});     
loginRequest.done(function (data) {
        if(enableConsoleLogging){
            //alert('login attempt complete.');
            console.log("login attempt complete.");
            console.log(data);
        }
});
loginRequest.fail(function(data) {
    if(enableConsoleLogging){
        //alert("login attempt failed.");
        console.log("login attempt failed.");
        console.log("statusText: "+data.statusText);
        console.log("responseText: "+data.responseText);
    }
    loginFailed(data);          
});

}

4

1 に答える 1

0

サイトのバックエンドで Drupal と Varnish を使用しています。Varnish は積極的に物事をキャッシュし、キャッシュされていないリクエストには応答しませんでした。ワニスを再起動すると問題が修正されました。

于 2012-08-18T00:53:26.597 に答える