4

是否可以在 jQuery.ajax() 中使用自定义 HTTP VERB,如 MERGE?我正在与 OData API 交互,该 API 在向记录发布更新时需要一个 MERGE 动词。

我遇到的问题是,当我在 ajax() 请求中使用“MERGE”时,它不会向服务器发送数据。它只是发送一个没有数据的 MERGE 请求,因此 OData 服务拒绝它。

当我将请求更改为 PUT 时,OData 服务发回 500 错误。

我的选择基本上是弄清楚如何获取“MERGE”调用以将数据与请求一起发送,执行 DELETE,然后执行 POST(在每次更新时删除并重新创建记录),或者弄清楚如何修改 OData 服务接受 PUT 进行更新。

如果您对如何使 jQuery.ajax() 使用 MERGE 请求发送数据有任何想法,请告诉我。

谢谢,

戴夫

4

3 回答 3

6

这不是jQuery处理自定义 HTTP 动词的能力问题,这取决于浏览器

于 2010-07-20T19:10:21.167 回答
4

OData通过添加 X-HTTP-Method 标头支持通过 POST 进行隧道 MERGE (当然也可以通过 JQuery 支持)。

有关更多信息,请参阅此线程

亚历克斯

OData 项目经理微软

于 2010-07-21T01:47:50.350 回答
1

通过this question找到,这里有一篇看起来很有趣的博客文章。

答案——至少在 2008 年——如果我没看错的话:

  • IE 似乎不支持它(至少到版本 7)

  • 火狐支持它

  • Opera 将一切未知变成GET请求

我想你必须尝试一下。

于 2010-07-20T19:14:03.537 回答