【发布时间】:2011-10-01 11:06:38
【问题描述】:
有没有办法查看客户端浏览器是否支持用于 JQuery 和 AJAX 请求的 PUT 或 SEARCH 方法?
- HTML5 PUT/DELETE methods not working in Chrome?
- Are the PUT, DELETE, HEAD, etc methods available in most web browsers?
我有以下代码,在 Chromium 和 Chrome 中,PUT 没有出现在我的服务器端...我想知道,如果浏览器不支持 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。
只是为了确认一下,对于遇到这种情况的任何人......没有编程方式
【问题讨论】:
-
您总是可以设置一个简单的“HTTP echo”服务,它会以 200 OK 响应每个请求,并在正文中返回完整的请求(标头和所有)。