Jquery 以编程方式查看客户端浏览器是否支持PUT/DELETE方法

Jquery 以编程方式查看客户端浏览器是否支持PUT/DELETE方法,jquery,ajax,rest,Jquery,Ajax,Rest,有没有办法查看客户端浏览器是否支持PUT或SEARCH方法用于JQuery和AJAX请求 我有以下代码,PUT不会在Chrome和Chrome中为我显示在服务器端。。。我想知道,如果浏览器不支持PUT,如何将其更改为POST请求。。。向后兼容 function do_data(url, action, query) { try { if ($.browser.msie) { var xdr = new XDomainRequest(); if (q

有没有办法查看客户端浏览器是否支持PUT或SEARCH方法用于JQuery和AJAX请求

我有以下代码,
PUT
不会在Chrome和Chrome中为我显示在服务器端。。。我想知道,如果浏览器不支持PUT,如何将其更改为POST请求。。。向后兼容

function do_data(url, action, query) {
try {
    if ($.browser.msie) {
        var xdr = new XDomainRequest();
        if (query !== null) {
            console.log(query);
            xdr.open(action, url + '?' + $.param(query));
        } else {
            xdr.open(action, url);
        }
        xdr.onload = function() {
            var data = $.parseJSON(this.responseText);
            show_data(data);
        };
        xdr.send();
    } else {
        if (query !== null) {
            $.ajax({
                url: url,
                data: query,
                type: action,
                success: function(data) {
                    console.log(data);
                },
                error: function(jqXHR, textStatus, errorThrown) {
                    console.log(textStatus);
                }
            });
        } else {
            console.log(query);
            $.ajax({
                url: url,
                type: action,
                success: function(msg) {
                    console.log(data);
                }
            });
        }
    }
} catch (e) {}
}
使用上述代码,如果我在Chrome/Chrome上使用“PUT”,则
error:function(jqXHR、textStatus、errorshown)
将简单地打印出
error

在服务器端,我看到了REQUEST_方法:OPTIONS和notput


我只是想确认一下,对于任何遇到这个问题的人。。。没有一种编程方式

处理大多数浏览器中缺乏PUT和DELETE支持的常见方式是使用HTTP POST隧道。基本上,您使用POST并将真实动词添加到X-HTTP-Method-OverrideHTTP头中。在您检查后者的服务上,如果找不到,请使用普通HTTP方法


有关更多信息,请参阅。

但这不允许我通过编程方式查看客户端浏览器是否支持PUT…使用此技术您不必这样做。Afaik没有办法检查对PUT和DELETE的支持,即使可以,您仍然需要以这种方式提供支持。谢谢。。。这让我明白了:问题的另一面是服务器位。并非所有人都能识别X-HTTP-Method-Override标头,有些人(如WCF数据服务)使用不同的标头(如X-HTTP-Method)。您可以始终设置一个简单的“HTTP echo”服务,该服务将以200 OK响应每个请求,并返回正文中的完整请求(标头和所有)。