2010-03-07 20 views
11

Bu hafta karşılaştım bir durum: Elimizde veriAjax bir ASP.NET Sayfa Metodu'na GET ister?

$.ajax(
{ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: fullMethodPath, 
    data: data, 
    dataType: "json", 
    success: function(response) { 
     successCallback(response); 
    }, 
    error: errorCallback, 
    complete: completeCallback 
}); 

fullMethodPath bir sayfada statik yönteme bağlantısıdır almak için sunucuya geri giden bir jQuery Ajax aramanız var (en /MyPage.aspx/MyMethod diyelim).

Bu, sorun değil. Bir iş arkadaşı, bu aramayı "GET" türünde biriyle değiştirmeyi denemişti. Kırdı, düzeltmek zorundaydım. Sonunda düzeltmeye ihtiyacımız olduğu için POST'a geri döndüm, ancak bu durumda bana bir GET daha "doğru" olduğu için beni rahatsız ediyordu.

Anladığım kadarıyla, jQuery, bir nesneyi bir veriyi bir Sorgu Dizesi: /MyPage.aspx/MyMethod?param1=value1&param2=value2 olarak çevirir, ancak geri döndüğüm tüm sayfa MyPage.aspx içeriğidir.

Bu, sayfa yöntemlerinin bir "özelliği" midir, yoksa bir GET isteği çalışması yapmanın bir yolu var mı?

+0

Sorununuz tam olarak nedir? Ne demek istiyorsun * ama geri dönebildiğim sayfanın içeriği MyPage.aspx. *? 'GET' isteği işe yaramadı mı? –

+0

@Felix: Sayfa yöntemini çağırmak yerine sayfanın tüm içeriğini aldığını gösterir. – SLaks

+0

@Felix: Sayfa yöntemiyle ne kastettiğimi açıklığa kavuşturdum – pdr

cevap

23

Güvenlik nedeniyle ASP.Net AJAX sayfa yöntemleri yalnızca POST isteklerini destekler.

+0

Güvenlik sorununun, yöntemin yalnızca birini veya diğerini kabul etmek için yazamayacağı olduğunu varsayıyorum. – pdr

+0

Ne demek istiyorsun? – SLaks

+0

Bazı yöntemlerin POST ile sınırlı olması gerektiğinden (çünkü bunlar güncelleştiriliyor), ASP.NET için MVC'deki gibi bir seçici sınırlayıcı uygulamak yerine tüm yöntemlerin POST ile sınırlı kalması daha kolaydı. – pdr