I\'m trying to call the webmethod
fucntionality using AJAX but unable to get the appropriate results. I have googled my problem and found many solution but thos
In my case the problem was the "data" field (both cases, GET and POST). As a test, remove the "data" from the AJAX call and also remove the web method parameter, if it works, then the problem is the format of the "data" field:
$.ajax({
type: "GET",
url: pagePath,
contentType: "application/json; charset=utf-8",
dataType: "json",
...
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public string getUsername()
{
return "True";
}
Some examples:
data: JSON.stringify({ "parameter": variable }) WORKS
data: JSON.stringify({ parameter: variable }) WORKS
data: '{"parameter": "' + variable + '"}' WORKS
data: '{parameter: ' + variable + '}' don't works
data: JSON.stringify({ 'parameter': 'value' }) WORKS
data: '{"parameter":"value"}' WORKS
data: "{'parameter':'value'}" WORKS
data: '{parameter:value}' don't works
data: {parameter:value} don't works
data: {"parameter":"value"} don't works
data: {'parameter':'value'} don't works
This is not specific to this question but you can check a few things to get better understanding of what is causing the issue.
Check this post for more detail.
First, it the webmethod is in the page class, and not in a Webservice class, then it should be static.
Second, the data transfered is not really a string, but an object, so change it to:
var dataString = { 'value': value };
Third thing, "type" is for older versions of jquery, you should either change your ajax call to:
method: "GET",
url: pagePath,
data: dataString,
contentType: "application/json; charset=utf-8",
dataType: "json",...
Or change the function in the server side to get post calls, by removing the
UseHttpGet = true
Probably you need to add static to your method declaration as below
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static string getUsername(string value)
{
return "True";
}
if this isn't the case, you could F12 the browser->network then click on the error message to see it briefly.
Concerning the reported issue,the problem with get request, try to make it post
The Answer is here :link
the problem is with the annotation I was using the [ScriptMethod(UseHttpGet = true)]
which causing the error. just change the value from true to false.