Asp.net 500 Internal Server Error While Calling Webmethod From Javascript
Solution 1:
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
Solution 2:
Probably you need to add static to your method declaration as below
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
publicstaticstringgetUsername(stringvalue)
{
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
Solution 3:
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.
Solution 4:
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 the status code and type of request in the General section of Request Headers.
- Check the Response Headers if there is any json error.
- Check the Response to get the message, stacktrace and exception type.
- Check the Request Payload section in Headers for parameters passed.
Check this post for more detail.
Solution 5:
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)]
publicstringgetUsername()
{
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
Post a Comment for "Asp.net 500 Internal Server Error While Calling Webmethod From Javascript"