2016-04-07 7 views
0

明らかにこの質問に基づいて、私は基本的な経験しか持っていないので、この初心者のAjaxに関する質問に私と裸でいますが、私はAjax呼び出しに関する情報を取得できる方法を探しています。私はKnockOutとjQuery/Ajaxを使っている小さなウェブサイトを調べるように頼まれました。なぜなら、一部のエンドユーザーは、処理中の.gifを実行しているサイトに問題があったからです。AJAXを呼び出すときに情報やエラーを記録する方法は?

コードを見ると、開発者はjQueryを使用してAPIへのAjax呼び出しを行っています。どのようにすればよいか分からないのは、ユーザーが何を検索しているのか、何らかのエラーをキャプチャしたり記録したりすることです。

エンドユーザーが、サイトが回転しているだけで何も起こっていないと回答しただけです。彼らは通常、自分の携帯電話からスクリーンショットを送信し、少なくとも彼らが何を入力したかを見ることができます。

エラーが発生した場合は、Ajaxコールを停止してユーザーにエラーを表示する方法と、詳細なエラー情報をキャプチャする方法があります。

ここで、送信ボタン

$("#btnSubmit").click(function (event) { 
    event.preventDefault(); 
    self.validateDate(); 
    self.validateOrigin(); 
    self.srchMessage("No records found.") 

    var origin = $("#txtOrigin").val(); 
    var destination = $("#txtDestination").val(); 
    var flightDate = $("#txtDate").val(); 
    var flightNo = $("#txtFlightNo").val(); 

    if (flightNo == '') { 
     flightNo = 'ALL'; 
    } 
    if (destination == '') { 
     destination = "ALL"; 
    } 
    if (origin == '') { 
     origin = "ALL"; 
    } 

    if (!self.orginRequired() && !self.dateRequired()) { 
     var serviceUrl = webApihostName + 'apiflight/v2/flight/' + origin + '/' + destination + '/' + flightNo + '/' + flightDate; 

     self.progressIcon(true); 
     self.tblVisible(false); 
     self.noRecordsMsg(false); 
     self.flightViewModel.removeAll(); 

     $.ajax({ 
      type: 'GET', 
      url: serviceUrl, 
      async: false, 
      jsonpCallback: 'BindData', 
      contentType: "application/json", 
      dataType: 'jsonp', 
      error: function (e) { 
       // console.log(e.message); 
      } 
     }); 
    } 
    }); 

のためのJSコード私は、コードを読む方法は、それが最初のいくつかの検証JSを設定し、「見つかりませんでしたレコード」にデフォルトの検索メッセージを設定していることです。

次に、テキストボックスを調べて値を取得するか、値を「すべて」に設定します。

次に、serviceUrlという名前の情報を持つAPI URIを作成します。

次に、進行状況.gifをオンにして、何か起こっていることをユーザーに知らせ、検索結果を表示するテーブルを非表示にして、フライトビューモデルを削除すると思います。

次に、APIを呼び出します。

ただし、エラーがある場合は何も行われていません。実際にエラーがある場合は、明らかに問題になります。

私はいくつかの調査を行い、エラーのセクションで次のことを試しましたが、次の日に、ユーザーが同じ問題を再度呼び出したコードを追加した後です。

error: function (e, xhr) { 
    self.progressIcon(false); 
    self.srchMessage("Error retrieving data. " + xhr.responseText); 
    self.noRecordsMsg(true); 

    // console.log(e.message); 
} 

誰かがエラー情報を取得または表示する方法の例があります。私はそれをキャプチャするためにNLogを使用したいと思いますが、これはサーバ側ではないので可能ではないと確信しています。また、私のマシン上で何かをローカルでテストできるようにするためにエラーを強制する方法についても正確にはわかりません。

答えて

0

ここでリクエストエラーを取得するためのいくつかのトリック。

error: function (xhr, textStatus, errorThrown) { 
    /**** REPLACE CURRENT DOCUMENT WITH SERVER RESPONSE**/ 
    document.open(); 
    document.write(xhr.responseText); 
    document.close(); 

    /**** LOGS JSON RESPONSE IF ANY ***/ 
    console.log(xhr.responseJSON); 

    /**** LOGS JQUERY REQUEST STATUS. POSSIBLE VALUES: "timeout", "error", "abort", "parsererror" ***/ 
    console.log(textStatus); 

    /**** LOGS HTTP ERROR IF ANY ***/ 
    console.log(errorThrown); 

} 
+0

だから最初のものは応答テキストだけ開発ツール(F12)で見ることができ、コンソールログへのログと他の人とポップアップ式のウィンドウが表示されますか? – Caverman

+0

最初のページは、現在のページをサーバーが送信したページで置き換えます(存在する場合)。他のものはf12 yesでしか見ることができません –

関連する問題