如何使用 jQuery AJAX 发布到 RESTful Web 服务?

Posted

技术标签:

【中文标题】如何使用 jQuery AJAX 发布到 RESTful Web 服务?【英文标题】:How to POST to a RESTful web service with jQuery AJAX? 【发布时间】:2011-10-30 06:38:57 【问题描述】:

一直用这个把我的头撞到墙上。

需要 POST 到 RESTful Web 服务。 用户名进入请求 url。 密码进入请求正文。 内容类型必须是 application/x-www-form-urlencoded。

使用 Chrome 的“简单 REST 客户端”扩展,一切正常。

使用 jQuery.AJAX(),我不断收到 405(不允许的方法)错误。

好的,代码如下:

$.ajax( 类型:“发布”, contentType: "application/x-www-form-urlencoded", url: baseURL + "api/users/" + 用户名 + "/login", 数据:密码:密码, 成功:函数(数据) console.log("成功", data.response); , 错误:函数(数据) console.log("错误", data.error); , 数据类型:“jsonp” );

有人发现代码有什么问题吗?

谢谢, 雅各布

【问题讨论】:

【参考方案1】:

Jsonp 并非设计用于POST 请求(请参阅this question 的答案),所以我怀疑dataType: "jsonp" 导致请求以GET 而不是POST 发送.您可以使用 Firebug 中的“net”面板或 Chrome 开发人员控制台来确认此行为。

您希望服务器返回什么?您可以通过删除 dataType 或将其设置为其他值来修复它。

【讨论】:

没问题!欢迎来到堆栈溢出 :)

以上是关于如何使用 jQuery AJAX 发布到 RESTful Web 服务?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 REST API 获取响应并从 jquery ajax 调用执行操作?

如何使用 ASP.NET MVC Rest API 调用和 jQuery Ajax 下载文件

使用 AJAX jQuery 访问 Python Rest API

如何在使用 AJAX、Django REST API 和 jQuery 以模式形式更新记录时显示外键字段名称而不是 ID

如何从 Java Rest Web 服务返回 ajax 值?

使用 jQuery/Ajax 从 JavaScript 调用 WCF/JSON/REST WebService