使用jQuery.ajax()自定义HTTP谓词

时间:2010-07-20 19:07:16

标签: jquery ajax odata

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

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

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

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

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

谢谢,

戴夫

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:4)

OData支持隧道MERGE through POST - 当然通过JQuery支持 - 通过添加X-HTTP-Method标头。

有关详情

,请参阅此thread

Alex

OData项目经理Microsoft

答案 2 :(得分:1)

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

答案 - 至少在2008年 - 如果我读得正确的话:

  • IE似乎不支持它(至少在版本7之前)

  • Firefox支持

  • Opera将所有未知内容转换为GET请求

我想你必须尝试一下。