Hiç kimse başarıyla ajax isteği sırasında yakalanmamış istisna izini mı?

6 Cevap php

Nasıl ajax başarısız veya sunucu tarafı geri bir şey yankı yok eğer başarılı olup olmadığını biliyor musunuz?

$.ajax(error:..,success:..)

Benim test bu istisna ile bir araya geldi:

uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.statusText]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: http://localhost/script/tab.js :: anonymous :: line 69" data: no]

Sunucu tarafı kodu:

$id = process();

Ve test etmek amacıyla, I-exit() işleminde () vardır;

Olduğunu bu istisnanın sebebi? Eğer öyleyse, neden?

EDIT I looked over to the line that cause exception,it's the error handling function of $.ajax()

error:function(XMLHttpRequest, textStatus, errorThrown){ 
    alert(XMLHttpRequest.statusText);alert(textStatus);alert(errorThrown);
}

Burada yanlış bir şey?

6 Cevap

Bu durum kodu istek döner bağlıdır. Başarılı bir istek 2xx aralığında bir durum kodu, bir hata 5xx 4xx aralığındadır.

Daha fazla bilgi için bkz: Wikipedia: List of HTTP status codes.

Hala boş olmanın veri bölümü ile, sunucudan bir yanıt almak istiyorum. O da hiç cevap var ise, bu bir hata olurdu.

http://docs.jquery.com/Ajax/jQuery.ajax#options

Başarı için bir seçenek vermek ve çağrısı yapıldıktan sonra bu fonksiyonlar çağrılır hatası.

Alabileceğin dört olası senaryo vardır:

  • sunucu yok veya (bu bağlantı hatası rapor, hangi tarayıcı kullandığı Yuva kitaplığı tarafından tanımlanabilir) bağlantısını reddediyor
  • Bağlantı çalışmaları ve sunucu olmayan bir başarı hata kodunu döndürür - Bu geri başlığında geliyor. Nitekim, isteği bile boş bir gövde ile (200 kod) başarılı olabilir, bu tamamen geçerli değil
  • Bağlantı gelir ama sunucusu yanıt başarısız - ben bu ayrıntılar üzerinde net değilim, ama hiçbir yanıt alındı ​​dışarı çünkü JS sonunda zaman bekliyoruz ve buna göre bir başarısızlık dönecekti.
  • Bağlantı gelir ama sunucu yanlış (örneğin hiçbir başlıkları) yanıt - JS uygulama hata olarak bu dönmelidir.

Her durumda, tüm hata senaryoları JavaScript tabakanın XMLHttpRequest uygulama tarafından işlenir - jQuery sadece biraz Sessizleştirme arayüzü ile tamamladı.

Sizin durumunuzda (şimdi daha fazla bilgi verdiğiniz) ben sizin isteğinize sunucusu yanıtı ne olduğunu görmek için Firebug kullanmanızı tavsiye ederim. O dedi, sunucudan olmayan bir şey için bir istisna almak olmamalı, JS Yukarıdaki tüm durumlar için aynı hata geri arama aramalısınız.

Eğer} {eksik?

$.ajax(error:..,success:..)

olmalıdır

$.ajax( { error: function( ){ } } );

o ise, üzgünüm dostum, haha, o çok zaman geçirdim can sıkıcı olurdu

Benim ajax arama bir zaman aşımı belirterek bu sabit. Ajax aşımı sadece zaman X miktar sonra veriyordu. Sayfasında veri dönen sona erdi olsa, ajax nesnesi sadece vazgeçti ve boşaltılan, ancak bu hatayı attı.