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

发布于 2024-12-19 07:56:17 字数 669 浏览 1 评论 0原文

我正在使用 django tastypie 来实现 REST api,但遇到了一个我无法弄清楚的问题:

当我运行curl 时,

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 吗?正确的解决方法是什么?

I'm using django tastypie to implement a REST api but am running into a problem i can't figure out:

When I run a curl

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/

This works and changes the content as expected.

However when I try to do this through the browser with a call like:

 $.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);
    },
});

I get a 500 Internal Server Error

I have no idea why this is....is this because browsers no longer support PUT? What's the proper work around?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梨涡少年 2024-12-26 07:56:17

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

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

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

I think you are using the incorrect dataType, try using jsonp.
May also be browser specific, from jQuery:

The type of request to make ("POST" or "GET"), default is "GET". Note:
Other HTTP request methods, such as PUT and DELETE, can also be used
here, but they are not supported by all browsers.

This link may also be useful: jquery - how to put json via ajax

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文