2010-05-11 19 views
5

Çerçeve 2.0 ile oluşturulmuş asp.net web hizmetlerinden json çıktısını işleyen bazı javascript kodum var. Şimdi çerçeve 3.5 web hizmetlerinden dönen verileri desteklemem gerekiyor."d" nesnesini ASP.Net web hizmetinden kaldırma json çıktısı

Benim javascript kodum, 2.0 değerinde iyi çalışan bir nesne değeri döndürür. Ancak çerçeve 3.5'de, liste bir "d" nesnesine sarılmıştır. "D" sarmalayıcısını kaldırabilmem ve listeyi iade etmenin bir yolu var mı?

Ben Sen .d dönmemeyi 3.5+ hizmetleri yapılandırma olamaz sunucu tarafında

+3

Yan not: 'd' sarıcı bir güvenlik önlemidir. Http://encosia.com/2009/02/10/a-breaking-change-between-versions-of-aspnet-ajax/#comment-34045 –

+0

ilgili http://stackoverflow.com/questions/830112/ adresine bakın. Ne-ne-d-in-json- –

cevap

5

onthe Bunu düzeltmek için tercih ediyorum. Orada da olması iyidir, çünkü dış JSON varlığı bir dizi olduğunda mevcut olan zor bir JSON kaçırma senaryosundan korur.

ASP.NET AJAX'ın istemci tarafı proxy'leri sizden otomatik olarak .d'u gizler. Yolunuza çıkıyorsa, servisi aramak için jQuery gibi bir şey kullandığınızı farz ediyorum. Örneğin, You can normalize the .d in jQuery by using its DataFilter callback.

+0

teşekkürler. Mootools kullanıyorum. Mootools için böyle bir şey bulabilir veya kendi başıma döneceğim – Midhat

0

İstemci tarafında değişiklik yapma avantajınız varsa, en iyi yol jquery kullanıyor ve bir ton çözüm bulacaksınız. Ancak servis katmanında "d" yi kaldırmak istiyorsanız, web servisinizi Web API'sinde (WCF'yi de kullanabilirsiniz) en iyi şekilde yeniden yazabilirsiniz. Web Api, yanıt olarak "d" değerini döndürmez.

İlgili konular