AJAX向WebApi传递多个参数

2023-12-28

AJAX 请求:

$.ajax({
            url: url,
            dataType: 'json',
            type: 'Post',
            data: {token:"4", feed:{"id":0,"message":"Hello World","userId":4} }
        });

服务器端 Web API:

 [HttpPost]
 public HttpResponseMessage Post(string token, Feed feed)
 {
    /* Some code */

    return new HttpResponseMessage(HttpStatusCode.Created);
 }

错误代码 404: {"message":"未找到匹配的 HTTP 资源 请求 URI 'localhost:8080/api/feed'。","messageDetail":"无操作 在与请求匹配的控制器“Feed”上找到了。”}

为什么我会收到此错误以及为什么我无法将多个参数发布到我的 API?


首先编写视图模型:

public class MyViewModel
{
    public string Token { get; set; }
    public Feed Feed { get; set; }
}

您的控制器操作将作为参数:

[HttpPost]
public HttpResponseMessage Post(MyViewModel model)
{
    /* Some code */

    return new HttpResponseMessage(HttpStatusCode.Created);
}

最后调整您的 jQuery 调用以将其作为 JSON 发送:

$.ajax({
    url: url,
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify({
        token: '4',
        feed: {
            id: 0,
            message: 'Hello World',
            userId: 4
        } 
    })
});

AJAX 调用需要注意的重要事项:

  • 设置请求contentType to application/json
  • 将数据包装在JSON.stringify函数有效地将 javascript 对象转换为 JSON 字符串
  • 删除了无用的dataType: 'json'范围。 jQuery 会自动使用Content-Type服务器发送的响应头来推断如何解析传递给服务器的结果success打回来。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AJAX向WebApi传递多个参数 的相关文章

随机推荐

  • dplyr case_when 具有动态案例数

    想要使用 dplyr 和case when将一系列指标列折叠为单个列 挑战是我希望能够折叠未指定 动态数量的列 考虑以下数据集 gear已被分成一系列指标列 library dplyr data mtcars mtcars mtcars g
  • 如何从一张画布复制到另一张画布

    这里是jsfiddle http jsfiddle net tahmid UjrJM 2 我把它作为我的源画布 HTML h1 Source Canvas h1
  • Expand.grid() 中的奇怪错误

    我已经创建并评估了对expand grid通过使用eval parse 简而言之 len lt 36 Text lt paste pos lt expand grid paste rep c TRUE FALSE len collapse
  • UILabel 中文本的像素宽度

    我需要绘制一个删除线的 UILabel 因此我将 UILabel 子类化并实现如下 implementation UIStrikedLabel void drawTextInRect CGRect rect super drawTextIn
  • 使用 OAEP 密钥加密的 S/MIME 封装邮件解密失败?

    使用 Java 和 BouncyCastle 我能够解密大量 S MIME 封装的消息 但当密钥加密算法为1 2 840 113549 1 1 7 id RSAES OAEP 解密失败 堆栈跟踪在这个问题的末尾 发生这种情况的行 conte
  • Pocketsphinx安装失败?树莓派零(Raspbian Jessie)

    这可能会被标记为重复项 但我没有任何运气 所以我们开始吧 我正在尝试使用Python2 7开发一个类似 Jarvis 的设置 我希望使用 Pocketsphinx 作为其中的一部分 我尝试在我的 Windows 10 机器上执行此操作 但
  • “.”在哪里? (点)来自使用 PHP 'scandir' 时

    我有点困惑 我正在构建一个 PHP 函数来循环输出指定目录中的图像 PHP dir bilder objekt 0 objekt nr thumbnail thumbnails scandir dir print r thumbnails
  • 如何在生成 PDF 文件下载时显示进度条,而不出现 IE“下载”警告

    我已经在客户端和服务器之间进行了通信 过程很简单 我正在向控制器发出 AJAX POST 请求 该控制器在文件系统中生成 pdf 上述请求成功后 将发出表单 GET 请求以取回 pdf 并打开标准浏览器 保存或打开 对话框 我之所以采用两步
  • C - fwrite 大于 4GB 的二进制文件

    我基本上是 C 新手 我有一个 64 位 Windows 7 配备 64GB RAM 和 240GB SSD 我使用的采集板将采集的数据存储在 2 个内部 FIFO 中 然后将数据传递到 RAM 这样我就有可能采集 60 GB 的数据 我无
  • 部署时字体未加载

    我创建了一个有角度的应用程序 它在本地环境中加载得非常好 所有样式和字体都被应用 但是当我部署它时 字体没有加载 无法弄清楚为什么 它没有在控制台中显示任何错误或警告消息 我正在导入所有 css 样式angular json文件如下 dem
  • Factorial 函数在 Python 中工作,对于 Julia 返回 0

    我在Python中定义了一个阶乘函数 如下所示 def fact n if n 1 return n else return n fact n 1 print fact 100 在 Julia 中如下 function fact n if
  • 更改日期格式javascript

    我正在从两个不同的 API 中提取一些数据 稍后我想要获取这些对象 但是 我得到两种不同的日期格式 这种格式 1427457730 和这种格式 2015 04 10T09 12 22Z 如何更改其中之一的格式 以便我可以使用相同的格式 ea
  • MSSQLSM 2008 奇怪的登录在 select 语句上失败

    我的SQL服务器上有多种用户 所有用户都可以登录服务器 然而 一个用户一旦登录就无法在特定视图上运行任何操作 选择 更改 编辑 但可以在所有其余视图上运行 用户设置与具有完全访问权限的另一个帐户相同 说实话 它们是相同的 对于无法从他的视图
  • Apollo 的 MockedProvider 不为 withApollo 中包装的组件提供客户端

    在测试 withApollo 中包装的组件时 我使用 Apollo 文档中指定的 Apollo 的 MockedProvider 但是当酶尝试渲染该组件时 渲染器找不到clientMockedProvider 应该已经提供了 我有一个使用的
  • 如何使用jquery检查某个元素是否在用户视图中

    我有一个很大的可拖动对象div在我的窗户里 这div有一个较小的窗口 div style width 500px height 500px div style width 100 height 5000px ul li li li li l
  • WCF netTCPBinding - 传输加密是否足够?

    我有一个处理一些敏感数据的 WCF 服务 我想确保不暴露这些数据 所以我正在考虑 netTCPBinding 主要是因为我可以控制它运行的网络 并且性能是重中之重 我认识到有两个领域可以加密 传输级别和消息级别 我打算使用证书在传输级别进行
  • 获取每个字符出现的次数

    给定字符串 a dqdwqfwqfggqwq 如何获取每个字符出现的次数 在2 7和3 1中有一个叫做Counter的工具 gt gt gt import collections gt gt gt results collections C
  • Winform 消息框中可点击的 URL?

    我想在消息框中显示帮助链接 默认情况下 文本显示为不可选择的字符串 一种选择是在消息框中显示 url 以及一条消息 并提供帮助按钮 将您带到该 url MessageBox Show test message caption Message
  • 如何使用 CSS 将跨度更改为看起来像 pre?

    是否可以更改 span 标签 或 div 将其内容预格式化为 pre 标签只使用 CSS 吗 看着那 这W3C CSS2 1 默认样式表 https www w3 org TR CSS21 sample html or the CSS2 2
  • AJAX向WebApi传递多个参数

    AJAX 请求 ajax url url dataType json type Post data token 4 feed id 0 message Hello World userId 4 服务器端 Web API HttpPost p