【问题标题】:Angular POST and Web APIAngular POST 和 Web API
【发布时间】:2015-09-03 12:17:30
【问题描述】:

我的代码如下:

    var response = $http({
        method: 'post',
        withCredentials: true,
        dataType: "json",
        data: JSON.stringify(payload),

        headers: {
           'Content-Type': 'application/json; charset=utf-8',
        },
        url: url
    });

有效载荷如下所示: {"CASEID":3,"CASENUMBER":"ANY","TITLE":"ANY"}

后端代码:

public CL_CASE Post([FromBody]CL_CASE value)
    {....

运行时显示的值为空。 如果我将标题更改为 'Content-Type': 'application/x-www-form-urlencoded' 那么我确实获得了价值,但属性等于 null/0 。我做错了什么?

谢谢

【问题讨论】:

    标签: angularjs asp.net-web-api


    【解决方案1】:

    您无需致电JSON.stringify。这导致向服务器发送一个字符串,而不是一个对象。由于 WebAPI 模型绑定器需要一个 CL_CASE 对象,因此它无法仅从字符串填充该对象。

    只需发送对象本身:

    data: payload
    

    说实话,在这种情况下,我认为您根本不需要 headers 选项。让默认功能处理它:

    $http({
        method: 'post',
        withCredentials: true,
        dataType: 'json',
        data: payload,
        url: url
    })
    

    【讨论】:

    • 不,我也一样。
    • @Mark:如果您完全去掉headers 选项会怎样? CL_CASE 的类是什么样的?在浏览器中调试时,实际发出的 HTTP 请求的详细信息是什么?
    • 有人可以解释一下为什么它可以在没有标题的情况下工作吗?
    猜你喜欢
    • 1970-01-01
    • 2017-03-29
    • 2014-07-18
    • 2018-01-24
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多