我正在使用django tastypie来实现REST api,但遇到了一个我无法弄清楚的问题:
当我跑一个卷曲
curl -H "Content-Type: application/json" -X PUT --data '{"title": "my video", "date_created": "2007-03-07T14:48:22"}' http://localhost:8080/api/v1/video/1/
这可以正常工作并更改内容。
但是,当我尝试通过浏览器执行此操作时,请执行以下操作:
$.ajax({
url: 'http://localhost:8080/api/v1/video/1/',
type: 'PUT',
data: JSON.stringify(mydata),
success: check,
dataType: 'text/html',
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
},
});
我收到500内部服务器错误
我不知道为什么会这样....这是因为浏览器不再支持PUT?什么是正确的工作?
答案 0 :(得分:0)
我认为您使用的是不正确的dataType,请尝试使用jsonp
。
也可能是浏览器特定的,来自jQuery:
要求的类型(“POST”或“GET”),默认为“GET”。注意: 也可以使用其他HTTP请求方法,例如PUT和DELETE 这里,但并非所有浏览器都支持它们。
此链接也可能有用:jquery - how to put json via ajax