从 javascript 调用 web 方法时出现 ASP.NET 500 内部服务器错误

新手上路,请多包涵

我正在尝试使用 AJAX 调用 webmethod 功能,但无法获得适当的结果。我用谷歌搜索了我的问题并找到了很多解决方案,但这些对我没有用。请指导我做错了什么。帮助将不胜感激。

干杯

代码片段

 function checkUserNameExists() {

//initialization
var pagePath = window.location.pathname + "/getUsername";
var value = document.getElementById('control_userName').value;
var dataString = "{ 'value':'" + value + "' }";
$.ajax({
    type: "GET",
    url: pagePath,
    data: dataString,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    error:
            function (XMLHttpRequest, textStatus, errorThrown) {

            },
    success:
            function (result) {
                var flag = true;
                if (result != null) {
                    flag = result.d;
                    if (flag == "True") {
                        alert('okay fine you are good');
                    }
                    else {
                        alert('try again');
                    }
                }
            }
});
 }

Behind Code 文件中的方法

    [WebMethod]
    [ScriptMethod(UseHttpGet = true)]
    public string getUsername(string value)
    {
        return "True";
    }

例外

 ExceptionType: "System.InvalidOperationException"
  Message: "An attempt was made to call the method 'getUsername' using a        POST request, which is not allowed."

原文由 M A. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 230
2 个回答

首先,如果 web 方法在页面类中,而不是在 Web 服务类中,那么它应该是静态的。

第二,传输的数据并不是真正的字符串,而是一个对象,因此将其更改为:

 var dataString = { 'value':  value  };

第三件事,“类型”适用于旧版本的 jquery,您应该将 ajax 调用更改为:

 method: "GET",
url: pagePath,
data: dataString,
contentType: "application/json; charset=utf-8",
dataType: "json",...

或者更改服务器端的功能以通过删除

UseHttpGet = true

原文由 ShaharB 发布,翻译遵循 CC BY-SA 3.0 许可协议

可能您需要将静态添加到您的方法声明中,如下所示

[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static string getUsername(string value)
{
   return "True";
}

如果不是这种情况,您可以 F12 浏览器-> 网络,然后单击错误消息以简要查看。

关于报告的问题,get请求的问题,尽量发帖

原文由 Ahmed Alaa El-Din 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题