ajax put返回500内部服务器错误

时间:2011-12-04 03:48:53

标签: ajax django jquery put

我正在使用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?什么是正确的工作?

1 个答案:

答案 0 :(得分:0)

我认为您使用的是不正确的dataType,请尝试使用jsonp。 也可能是浏览器特定的,来自jQuery:

  

要求的类型(“POST”或“GET”),默认为“GET”。注意:   也可以使用其他HTTP请求方法,例如PUT和DELETE   这里,但并非所有浏览器都支持它们。

此链接也可能有用:jquery - how to put json via ajax