SORU
23 Mart 2009, PAZARTESİ


JSON hatası, servis dönüş hatası / ne yapmalıyım

C JSON bir servis yazıyorum# (.dosya ashx). Hizmet için başarılı bir istek üzerine ben bazı JSON veri döndürmek. Eğer istek başarısız olur, çünkü ya bir istisnaydı atılmış (örneğin veritabanı zaman aşımı) veya çünkü istek vardı yanlış bir şekilde (örneğin bir KİMLİĞİ olan bir yer yok, bir veritabanı verildi argüman olarak) nasıl hizmet veriyor. HTTP durum kodları mantıklı, ve ben herhangi bir veri geri, ne yapmalıyım?

Hizmet ağırlıklı bir WordPress kullanmak gelen jQuery kullanarak denen olacağını tahmin ediyorum.form eklentisi dil eklentisi bu eklenti bir hata yanıtı işleme herhangi bir varsayılan yol var mı?

DÜZENLEME:JQuery kullanacağım karar verdim .ashx [HTTP durum kodları] başarı JSON döneceğim ama hata ne hatası seçeneği bir WordPress kullanmak için göründüğü gibi bir dize geri dönüş yaparım.ajax bekliyor.

CEVAP
23 Mart 2009, PAZARTESİ


En iyi uygulamalar durumunuza biraz fikir için this question bkz.

Sırt çizgisi öneri (dedi link) için standardize bir tepki yapısı (için hem başarı hem de başarısızlık) amirin görünüyor için, alıcı tüm özel sunucu katmanı dönüştürme ve onlara aynı yapı. Örneğin (this answer):

{
    success:false,
    general_message:"You have reached your max number of Foos for the day",
    errors: {
        last_name:"This field is required",
        mrn:"Either SSN or MRN must be entered",
        zipcode:"996852 is not in Bernalillo county. Only Bernalillo residents are eligible"
    }
} 

Bu yaklaşım stackoverflow kullanır (merak ediyorsan eğer nasıl diğerleri bu tür bir şey); yazma işlemleri gibi bir oylama var "Success" "Message" alanları ne olursa olsun, eğer bir oylama oldu izin ya da değil:

{ Success:true, NewScore:1, Message:"", LastVoteTypeId:3 }

@Phil.H pointed out, ne olursa olsun seçtiğiniz tutarlı olmalıdır. Bu daha kolay gelişiminde her şey! gibi yapılır daha söyledi.

Örneğin, eğer yorum ÇOK çok hızlı, tutarlı ve iade yerine gönderin

{ Success: false, Message: "Can only comment once every blah..." }

YANİ sunucu bir istisna (HTTP 500) atmak ve error geri yakalayacak.

"Tarafı istemci kod tabanı için daha fazla karmaşıklık ekler .ashx [kodlar durumu] HTTP IMO değdi. daha jQuery kullanmak için sağ hissediyor kadar JQuery "" hata kodları ama bir başarı eksikliği kodu değil. algılamıyor fark Bu jQuery ile http yanıt kodları etrafında bir müşteri tasarım için çalışırken önemli bir ayrım. Sadece iki seçenek almak (bir "başarı" ya da ""?) hata, ayrıca kendi şube var. Eğer web hizmetleri sayfaları az sayıda sürüş küçük bir sayı varsa o zaman sorun olmayabilir, ama bir şey daha büyük ölçekte biraz karışabilir.

.asmx bir Java eklentisi çok daha doğal (ya da XML) HTTP durum kodunu özelleştirmek için daha özel bir nesneyi döndürmek için. Ayrıca ücretsiz JSON serileştirme olsun.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DJAndrewRyan

    DJAndrewRyan

    22 Ocak 2007
  • PUSHER

    PUSHER

    11 HAZİRAN 2014
  • WiseOwlTutorials

    WiseOwlTutor

    21 EKİM 2011