有没有办法查看客户端浏览器是否支持使用PUT或SEARCH方法来使用JQuery& AJAX请求?
我有以下代码,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。
只是为了确认,对于遇到这种情况的人来说......没有一种程序化方式
答案 0 :(得分:0)
在大多数浏览器中,处理缺少PUT和DELETE支持的常用方法是使用HTTP POST隧道。基本上,您使用POST并将实际VERB添加到 X-HTTP-Method-Override HTTP标头。在服务上检查后者,如果没有找到,请使用普通的HTTP方法。
有关详细信息,请参阅here。