java - 如何使用 Java Play Framework 2.0.3 和 easyXDM 获取 PUT 请求数据

标签 java playframework playframework-2.0

我正在尝试使用 easyXDM 从 Web 应用程序调用我自己的 Web 服务 (Java Play 2.0.3)

这是我在客户端(网络)的代码:

  var formValues = {
           email: $('#editUserEmail').val(),
           first_name: $('#editUserFirstName').val(),
           last_name: $('#editUserLastName').val()
  };

  this.xhr.request({
           url: "http://restserver.dev:9000/users/" + this.model.get('id'),
           method: "PUT",
           data: formValues
        }, function(response){
           console.log(response.data);

           var jsonResponse = JSON.parse(response.data);

           if (jsonResponse.status == 'success'){
              alert("saved successfully");
           }

        });

这是服务器代码(Java):

  final Map<String, String[]> values = request().body()
    .asFormUrlEncoded();

    // validating
    if (values.containsKey("first_name"))
        db_user.first_name  = values.get("first_name")[0];
    if (values.containsKey("last_name"))
        db_user.last_name = values.get("last_name")[0];
    if (values.containsKey("email"))
        db_user.email = values.get("email")[0];

它适用于 POST 方法,但每当我尝试使用 PUT 方法时,服务器无法以某种方式获取 PUT 请求正文数据(值为空)。我使用相同的代码将其更改为 POST,并且工作正常。 我在客户端或服务器端做错了吗?

谢谢!

最佳答案

据我所知,并非所有浏览器都支持 Ajax 请求的 PUT。这可能是您在这里遇到问题的原因。为了跨浏览器兼容性,您应该坚持在 Ajax 调用上使用 GET/POST。

关于java - 如何使用 Java Play Framework 2.0.3 和 easyXDM 获取 PUT 请求数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12696199/

相关文章:

java - 在 Activity 中发送和添加回收器 View 数据时遇到问题

Java getter 与 this

java - 如何在 Play 中将所有入站请求转换为 UTF-8!框架

scala - Slick 的日志记录选项

java - 在Scala play框架中处理xml

scala - Slick 3.0 通用 CRUD 实现中的类型参数绑定(bind)错误

java - 你如何以编程方式 'relative import' 一个 jar 文件目录?

playframework - 是否可以将@PrePersist 和@PreUpdate 与eBean 和Play 一起使用! 2.0?

scala - 如何设置 prod 模式以将配置文件放在 conf 目录中(而不是在 jar 内)?

java - 如何让一个句子超时?