Ситуация я натыкался на этой неделе: у нас есть вызов Ajax jQuery, который возвращается к серверу для получения данных
$.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
ссылка на статический метод на странице (скажем, /MyPage.aspx/MyMethod
).
public partial class MyPage : Page
{
// snip
[WebMethod]
public static AjaxData MyMethod(string param1, int param2)
{
// return some data here
}
}
Это работает, без проблем.
Коллега попытался заменить этот вызов тем, где тип был, "ДОБИРАЮТСЯ". Это повредилось, я должен был зафиксировать его. В конечном счете я вернулся к POST, потому что нам была нужна быстрая фиксация, но это прослушивало меня, потому что семантически ПОЛУЧЕНИЕ более "корректно" в этом случае.
Насколько я понимаю jQuery переводит объект в данных к Строке запроса: /MyPage.aspx/MyMethod?param1=value1¶m2=value2
но все, что я мог возвратить, было содержанием страницы MyPage.aspx
.
Это - просто "функция" методов Page или является там способом выполнить ПОЛУЧИТЬ запрос работать?
По соображениям безопасности методы страницы ASP.Net AJAX поддерживают только запросы POST.