制作同一个域(http://example.host.com - > http://example.host.com)POST,responseXML包含预期的数据。发出相同的请求,但作为PUT,对于成功的请求,responseXML为null。我正在使用jQuery.ajax,但我也测试了一个手动实现,结果相同。
var settings = {
url: '//' + window.location.host + window.location.pathname,
type: getRequestType(),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: JSON.stringify(parms),
error: function(jqxhr, status, error) {
console.log('error');
},
success: function(data, status, jqxhr) {
console.log('success:', data);
}
};
$.ajax(settings);
我正在使用一个非常简单的服务器请求处理程序,它返回一个简单的json格式的字符串。
@require_http_methods(["PUT"])
def proxy_update(request):
out = {
'type': 'update',
'success': True
}
return HttpResponse(json.dumps(out), mimetype="application/json")
对此有何解释?
答案 0 :(得分:1)
根据jQuery文档,并非所有浏览器都支持所有动词。很可能您使用的浏览器不支持PUT动词。尝试其他浏览器。如果浏览器没有失败,那么服务器也可能被配置为忽略PUT动词。