web-dev-qa-db-ja.com

jQuery:getJSON()でエラーを処理しますか?

JQueryの getJSON を使用する場合、500エラーをどのように処理しますか?

getJSON()and[〜#〜] jsonp [〜#〜] を使用したエラー処理についていくつか質問がありますが、私はそうではありませんJSONPを使用して、通常のJSONを実行します。

別の答え.ajaxSetup()を呼び出す前にgetJSON()を使用することを提案しているので、これを試しました:

$.ajaxSetup({
  "error":function() {   
    alert('Error!');
}});
$.getJSON('/book_results/', function(data) { # etc

しかし、結果が整形式であっても、アラートは常にトリガーされることがわかりました。

何か案は?

23
AP257

getJSONメソッドは本来エラーを返しませんが、コールバックのパラメーターとして返されるxhrオブジェクトに飛び込むことができます。

getJSONメソッドはjQuery.ajaxの省略関数です。 jQuery.ajaxを使用すると、エラー処理を簡単に実現できます。

  $.ajax({
    url: 'http://127.0.0.1/path/application.json',
    dataType: 'json',
    success: function( data ) {
      alert( "SUCCESS:  " + data );
    },
    error: function( data ) {
      alert( "ERROR:  " + data );
    }
  });
27
halfpastfour.am

Jqueryバージョン1.5以降を使用している場合は、新しいメソッド.success(function)、. error(function)、. complete(function)を使用できます。

http://api.jquery.com/jQuery.get/ の例

// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.get("example.php", function() {
  alert("success");
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });

// perform other work here ...

// Set another completion function for the request above
jqxhr.complete(function(){ alert("second complete"); });

私にぴったりの作品。これが役に立てば幸い

11
bibstha

あなたはjquery api getJSONでそれを見ることができます: http://api.jquery.com/jQuery.getJSON/

$.getJSON(url).done(function(data){
   $("#content").append(data.info);
})
.fail(function(jqxhr){
   alert(jqxhr.responseText);
});

//jquery1.5+失敗のコールバックは、テキストが正しいjson文字列またはその他の失敗の解決策でない場合にトリガーされます

9
lee

JQuery 3.2.1の使用:

$.getJSON('/api/feed/update', function (data) {
    console.log(data);
}).catch(function (jqXHR, textStatus, errorThrown) {
    console.error(jqXHR);
    console.error(textStatus);
    console.error(errorThrown);
});
0
Kevin Struillou