【问题标题】:how to convert the JSON object into form data and send it as Data to web api fetch如何将 JSON 对象转换为表单数据并将其作为数据发送到 web api fetch
【发布时间】:2019-05-06 15:27:52
【问题描述】:

我在客户端有一个 json 对象,我想在 Web api 控制器中接收它,例如 controllerContext.HttpContext.Request["Name"] 如何从 Web API 发送该 Json .

获取 API 的预期数据为 "name=abc&type=xyz"。如何转换 JSON 对象

 {
name: abc,
type:xyz
}

下面的代码不工作

{
            method: 'POST',
            headers: {
              Accept: 'application/json',
              'Content-Type': 'application/json'
            },
            credentials: 'same-origin',
            body: JSON.stringify({
            name:abc,
            type:xyz
            })
          };
          
如下替换正文和标题可以正常工作

 body: "name=abc&type=xyz"
 headers: new Headers({
                'Content-Type': 'application/x-www-form-urlencoded', // <-- Specifying the Content-Type
       }

如上如何转换Json对象,这是什么原因?

【问题讨论】:

    标签: javascript ajax reactjs react-native asp.net-web-api


    【解决方案1】:

    你能分享你的 .NET 代码吗?

    请求正文不像参数那样具有价值!

    Body 应该从 JSON 中获取数据。

    您可以使用 [FromBody] 属性! 或者可以为此创建一个 DTO。 DTO 应该自动处理这个问题!

    【讨论】:

      【解决方案2】:

      我不了解 ASP.NET,但我相信有一种方法可以将数据类型配置为 JSON,而不是 form-urlencoded。或者您需要自定义服务器解析数据的方式。

      如果无法更改为 application/json.您可以使用 querystring 包将您的 JSON obj 字符串化为 urlenconded 格式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-12
        • 1970-01-01
        • 1970-01-01
        • 2017-10-16
        • 1970-01-01
        • 1970-01-01
        • 2013-01-09
        • 2011-10-26
        相关资源
        最近更新 更多