是否可以使用自定义HTTP VERB(如MERGE)和jQuery.ajax()?我正在与OData API进行交互,该API在向记录发布更新时需要MERGE动词。
我遇到的问题是,当我在ajax()请求中使用“MERGE”时,它不会向服务器发送数据。它只发送一个没有数据的MERGE请求,因此OData服务拒绝它。
当我将请求更改为PUT时,OData服务会发回500错误。
我的选择基本上是弄清楚如何让“MERGE”调用与请求一起发送数据,执行DELETE后跟POST(删除并在每次更新时重新创建记录),或者弄清楚如何修改OData服务接受PUT进行更新。
如果您对如何使jQuery.ajax()发送带有MERGE请求的数据有任何想法,请告诉我。
谢谢,
戴夫
答案 0 :(得分:6)
这不是jQuery
处理自定义HTTP动词的能力问题,这取决于浏览器。
答案 1 :(得分:4)
OData支持隧道MERGE through POST - 当然通过JQuery支持 - 通过添加X-HTTP-Method标头。
有关详情
,请参阅此threadAlex
OData项目经理Microsoft
答案 2 :(得分:1)
通过this question找到,here是一篇看起来很有趣的博客文章。
答案 - 至少在2008年 - 如果我读得正确的话:
IE似乎不支持它(至少在版本7之前)
Firefox支持
Opera将所有未知内容转换为GET
请求
我想你必须尝试一下。