Skip to content Skip to sidebar Skip to footer

Asp.net 500 Internal Server Error While Calling Webmethod From Javascript

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 those didn't worked for m

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"