无法加载资源:服务器在httpPost时响应状态为500(内部服务器错误)

时间:2017-07-14 17:27:02

标签: javascript angularjs http http-post

我试图通过角度调用C#函数  我看到了一个模板怎么做,我得到了这个错误。  o试图在谷歌寻找解决方案但它是一般的问题。 我很确定我没有正确调整我的代码 这是javascript代码:

 var app = angular.module("loginApp", []);
    app.controller("loginC", ['$scope', '$http',function ($scope, $http) {
        $scope.login = function () {
           // $http.post('/login.aspx/Login', { userName: $scope.vm.username, password: $scope.vm.password });
            var httpreq = {
                method: 'POST',
                url: 'login.aspx/Login',                    
                data: { userName: $scope.vm.username, password: $scope.vm.password }
            }
            $http(httpreq).success(function (response) {

                alert("Saved successfully.");
            })
        };



    }]);

这是C#函数声明(此函数驻留在文件后面的登录代码中):

 protected void Login(String userName,String password)
{
 //some code
}

更新

我通过向httpreq变量

添加“标题”来更改HTTP的配置
var httpreq = {
       method: 'POST',
       url: '/login.aspx/Login',
       headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'},                     
                data: { username: $scope.vm.username, password: $scope.vm.password }
            }
            $http(httpreq).success(function () {

                alert("Saved successfully.");
            })

错误消失了,警报加速,但我把BP放在服务器端功能的开头,我仍然无法到达那里,

我已经尝试添加[webmethod]和[HttpPost]装饰。

UPDATE2

当我将网址更改为

url: 'login.aspx'

(没有函数名)并且我在PageLoad函数中设置了BP,我成功地到达了服务器端的BP,这意味着问题在于函数的路径。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

试试这个

var httpreq = {
       method: 'POST',
       url: '/login.aspx/Login',
       headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'},                     
                data: { userName: $scope.vm.username, password: $scope.vm.password }
            }
            $http(httpreq).success(function () {

                alert("Saved successfully.");
            })


 [WebMethod]
 [HttpPost]
 protected static void Login(String userName,String password)
{
 //some code
}

你正在传递username小而你在weblthod中用于camelCase,即userName。也使用static webmethod。