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

我有以下代码,并且PUT在Chromium和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) {}

}

使用以上代码,如果我在Chromium / Chrome上使用“ PUT”,error: function(jqXHR, textStatus,

errorThrown)则将简单地打印出error

在服务器端,我看到REQUEST_METHOD:OPTIONS而不是PUT。

回答:

解决大多数浏览器中缺少PUT和DELETE支持的常见方法是使用HTTP POST隧道。基本上,您使用POST并将真实的VERB添加到 HTTP标头中。在服务上,您检查后者,如果找不到,请使用常规HTTP方法。

有关更多信息,请参见此处。

以上是 查看客户端浏览器是否支持PUT / DELETE方法的编程方式 的全部内容, 来源链接: utcz.com/qa/418844.html

回到顶部