Soru jQuery $ .ajax () işlevinin hata mesajı kaynağı


Başarısızlık durumunda, kod şöyle bir şey yapar:

error: function(msg)

nerede yapar msg dan geliyorum?

DÜZENLE:

Bir WEB SERVICE çağırmak için bu işlevi ($ ajax) kullanıyorum. Öyleyse, eğer oy veren kişi bana msg'nin nereden geldiğini bana açıklarsa büyük olur! Web hizmetinde mi ayarlıyorum? Öyleyse nasıl? Lütfen tanımları kopyalayıp yapıştırmayın.


21
2018-01-21 22:16


Menşei


bu neden düşürülüyor? - Jason
msg parametresi, isteği yapmak için kullanılan XMLHttpRequest nesnesi jquery'dir. Aradığı önemli değil msg veya xhr ya da her neyse, ilk (veya tek) parametrenin budur. Bunu aldığın örnekte, kullanmış olmalılar. xhr ya da başka bir şey msg, bu kafa karıştırıcı. Onu değiştirmeni öneririm. Ve evet, neden düşüşleri bilmiyorum. Bu güzel bir soru. Burada bir oylama bile yapacağım. . . - Patrick Karcher


Cevaplar:


Jquery belgelerinden:

error(XMLHttpRequest, textStatus, errorThrown) Function 

İstek başarısız olursa çağrılacak bir işlev. Fonksiyon üç argümandan geçirilir:
  - XMLHttpRequest nesnesi,
  - Oluşan hata türünü açıklayan bir dize ve
  - Bir tane oluştuğunda isteğe bağlı bir istisna nesnesi.
  İkinci argüman için olası değerler (boşta değil) "zaman aşımı", "hata", "değiştirilmemiş" ve "ayrıştırıcı" dır. Bu bir Ajax Etkinliğidir.

Sadece bir parametre belirttiğinizde, xmlHttpRequestObject. Bundan iyi bilgiler alabilirsiniz. Ne yazık ki, Orada çoğu dokümantasyon bunu doğru şekilde ayarlamamıştır. İyi bir varsayılan şablon:

error:function (xhRequest, errorText, thrownError)

XhRequest'ten alabileceğiniz bazı iyi bilgiler şunlardır:

  • .status : 404: "bulunamadı", 500: "sunucu hatası". Bu bazen büyük bir yardım olabilir.
  • .responseText Sunucudan gelen bilgi, genellikle bir hata durumunda işe yaramaz ancak bazen yardımcı olabilir.

İkinci değer, bir dize, bazen yardımcı olur. Ah, sanırım olası değerler belgelerde belirtilmiştir.

3. parametre, her ne zaman kontrol ettiğimde, her zaman tanımlanmamıştır. Hiç işe yaramadığını sanmıyorum.


20
2018-01-21 22:19



Sen hash etiketi çalışmıyorsun (maalesef) - Josh Stodola


Ben 3. parametre düşünüyorum errorThrown hata geri çağırma işlevinde

 error(XMLHttpRequest, textStatus, errorThrown)

metin hata mesajını sunucudan göndermektir.

Yani bir sunucuda şunları ayarlarsanız:

 Response.Status = 403;
 Response.StatusDescription = "Password is not correct";

Bir müşteride olsun:

 textStatus => "error",
 errorThrown => "Password is not correct"

Asp.net MVC için sunucu bölümü:

 return new HttpStatusCodeResult(403, "Password is not correct");

7
2018-01-17 13:06





İleti, ajax çağrınızda sorguladığınız gerçek sunucu tarafı işlevinden bir dönüştür.

Bu şekilde, sunucu tarafı kodunun yapması gerekeni yapıp yapmadığına dair hata veya herhangi bir bilgi alabilirsiniz.

"Başarı" dizesini döndürürseniz söyle

msg.val() "başarı" eşit olacak

umarım yardımcı olur


2
2018-01-21 22:19





ajax dönüş değişkeni (bu durumda 'msg'), AJAX çağrısından döndürülen çıktıdır - ajax hatası durumunda, bu muhtemelen bir sunucu hatası olur.


0
2018-01-21 22:19





Aslında doğru yol:

error: function(req, status, error) {
}

JQuery API'sinden:

Olması gereken bir işlev   istek başarısız olursa çağrılır.   işlev üç argümandan geçirilir:   XMLHttpRequest nesnesi, bir dize   hata türünü açıklayan   oluştu ve isteğe bağlı bir istisna oluştu   Nesne, meydana gelmişse. Mümkün   ikinci argüman için değerler   (null dışında) "zaman aşımı", "hata",   "değiştirilmemiş" ve "ayrıştırıcı". Bu   Ajax olayıdır.


0
2018-01-21 22:22