AngularJS Web服务asmx $ http发布

时间:2015-04-23 13:27:41

标签: angularjs web-services

我正在尝试将一些表单变量发送到Web服务。 Web服务假设返回我想填充为网格的JSON。我的服务很好,我已经测试过了。

我的控制器看起来像这样

var postUrl = 'schedule.asmx/getSchedulerGrid';
$scope.getSchedulerGrid = function() {
    $http.post(postUrl, {
        type: $scope.selectedType,
        branchId: $scope.selectedBranch
    }).success(function(responseData) {
        var myjson = JSON.parse(responseData);
        $scope.scheduleGrid = myjson;
        console.log($scope.selectedType);
        console.log($scope.selectedBranch);
    });
}

$scope.selectedType$scope.selectedBranch正在正确分配值。

然而,当我运行程序,即填写类型,分支并点击带有ng-click的Go时,我收到这样的错误

System.InvalidOperationException: Missing parameter: type.

at System.Web.Services.Protocols.  ValueCollectionParameterReader.Read(NameValueCollection collection)
    at System.Web.Services.Protocols.UrlParameterReader.Read (HttpRequest request)

我的web.config有

<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>

我的网络服务是这样的

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string getSchedulerGrid(int type, string branchId)
{
    JavaScriptSerializer js = new JavaScriptSerializer();
    Context.Response.Clear();
    Context.Response.ContentType = "application/json";
    .....
}

0 个答案:

没有答案