【问题标题】:AngularJS $http ajax not working on asp.net web api callAngularJS $http ajax 不适用于 asp.net web api 调用
【发布时间】:2015-10-09 14:23:32
【问题描述】:

我有一个简单的 AngularJS ajax 调用如下。

    $scope.modelObject.sendRequest = function (requestType) {
        var dataTemp = { first: 7, second: 3 } ;
        alert($httpParamSerializer(dataTemp));
        $http({
            url: '/api/bindings/sumnumbers',
            data: $httpParamSerializer(dataTemp),
            headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
        }
        ).success(function () {});
    }

在另一端,我有一个带有 sumnumbers 操作方法的 web api BindingsController,如下所示。

    [HttpGet]
    [HttpPost]
    public async Task<IHttpActionResult> SumNumbers() {
        if (Request.Content.IsFormData()) {
            NameValueCollection jqData = await Request.Content.ReadAsFormDataAsync();
            int firstValue, secondValue;
            if (TryGetValues(jqData, "first", "second", out firstValue,
                out secondValue)) {
                return Ok(firstValue + secondValue);
            } else if (TryGetValues(jqData, "value1", "value2", out firstValue,
                out secondValue)) {
                return Ok(firstValue - secondValue);
            }
        }
        return StatusCode(HttpStatusCode.BadRequest);
    }

javascript 代码alert($httpParamSerializer(dataTemp)); 中的警报正确显示了数据。 我在 action 方法中放置的断点被击中,表明调用成功。但问题是 TryGetValues(jqData ... 无法获得任何值。看到jqData(NameValueCollection) 的AllKeys 属性根本没有任何键!!。有人可以建议什么是我失踪了?

【问题讨论】:

    标签: ajax angularjs asp.net-web-api2


    【解决方案1】:

    这是我这边的一个小错误。只需要添加

    method:'Post'
    

    在调用内部所以调用变为

            $http({
                method:'Post',
                url: '/api/bindings/sumnumbers',
                data: $httpParamSerializer(dataTemp),
                headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
            }
    

    我用 fiddler 找到了这个。

    【讨论】:

      猜你喜欢
      • 2015-02-21
      • 2019-07-06
      • 2021-02-08
      • 2019-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多