A situation I ran across this week: we have a jQuery Ajax call that goes back to the server to get data
$.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
is a link to a static method on a page (let's say /MyPage.aspx/MyMethod
).
public partial class MyPage : Page
{
// snip
[WebMethod]
public static AjaxData MyMethod(string param1, int param2)
{
// return some data here
}
}
This works, no problem.
A colleague had attempted to replace this call with one where type was "GET". It broke, I had to fix it. Eventually, I went back to POST because we needed the fix quick, but it has been bugging me because semantically a GET is more "correct" in this case.
As I understand it, jQuery translates an object in data to a Query String: /MyPage.aspx/MyMethod?param1=value1¶m2=value2
but all I could get back was the content of the page MyPage.aspx
.
Is that just a "feature" of Page methods, or is there a way of making a GET request work?
AJAX in ASP.NET WebFormsThe method needs to be public, static, and add an attribute as WebMethod on top of it. Add the following code in code-behind file (*. aspx. cs) which receives list of employees and returns same.
Cs Page Using Ajax. $(function () { try { debugger; $. ajaxSetup({ async: false }); setInterval(function () { CheckSession(); }, 10000); } catch (exception) { manageOverlay(false); alert(exception); } });
PageMethod takes country as input parameter which is mentioned with data property of $. ajax. success: function (data) { } will execute when PageMethod executes successfully. It add row for each customer record.
GET is basically used for just getting (retrieving) some data from the server. Note: The GET method may return cached data. POST can also be used to get some data from the server. However, the POST method NEVER caches data, and is often used to send data along with the request.
For security reasons, ASP.Net AJAX page methods only support POST requests.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With