java - Json POST 请求数据无法到达 Play Framework 2 中的服务器

标签 java json playframework-2.2

嘿,我正在努力解决这个问题。服务器收到请求,但没有收到我传输的 json。 我在帖子中进行了搜索,但没有发现任何对我有用的内容。

我的 Coffescript 请求:

d = { 'filter': "John Portella" };

$.ajax(
  type: "POST",
  dataType: "text/json",
  data : JSON.stringify(d),
  url: "/restricted/actionOnMultipleDatasets",
  success: (data) ->
    ...

相关路线:

POST   /restricted/actionOnMultipleDatasets       controllers.ajax.AjaxDatasetOperations.actionOnMultipleDatasets()

和 Controller 操作

@SecuredAction(authorization = WithProvider.class, params = { "userpassword" })
public static Result actionOnMultipleDatasets() {
    UserInfo userInfo = (UserInfo) ctx().args.get(SecureSocial.USER_KEY);
        JsonNode json=request().body().asJson();
    if(json==null){
        return badRequest(Json.toJson("Data is not Json!"));
    }

每次我请求该操作时,json 都是空的。有谁知道为什么会发生这种情况? 作为附加信息,我使用 securesocial。

我已尝试清理该项目。什么也没发生。

相关堆栈跟踪:

java.lang.NullPointerException
    at controllers.ajax.AjaxDatasetOperations.actionOnMultipleDatasets(AjaxDatasetOperations.java:588)
    at Routes$$anonfun$routes$1$$anonfun$applyOrElse$36$$anonfun$apply$36.apply(routes_routing.scala:497)
    at Routes$$anonfun$routes$1$$anonfun$applyOrElse$36$$anonfun$apply$36.apply(routes_routing.scala:497)
    at play.core.Router$HandlerInvoker$$anon$7$$anon$2.invocation(Router.scala:183)
    at play.core.Router$Routes$$anon$1.invocation(Router.scala:377)
    at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:56)
    at play.GlobalSettings$1.call(GlobalSettings.java:64)
    at play.core.j.JavaAction$$anon$3.apply(JavaAction.scala:91)
    at play.core.j.JavaAction$$anon$3.apply(JavaAction.scala:90)
    at play.core.j.FPromiseHelper$$anonfun$flatMap$1.apply(FPromiseHelper.scala:82)
    at play.core.j.FPromiseHelper$$anonfun$flatMap$1.apply(FPromiseHelper.scala:82)
    at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:278)
    at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:274)
    at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:29)
    at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:37)
    at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:42)
    at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

最佳答案

使用 jquery 发布时,尝试添加以下行作为参数:

内容类型:“application/json;charset=utf-8”,

数据类型:“json”,

关于java - Json POST 请求数据无法到达 Play Framework 2 中的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22316789/

相关文章:

playframework-2.2 - 不使用gridFSBodyParser(gridFS)以非阻塞方式上传文件

java - ModelMapper:确保方法具有零参数并且不返回 void

JavaFX LineChart 图例样式

java - 线程 "main"com.sun.xml.internal.ws.fault.ServerSOAPFaultException 中出现异常 : Client received SOAP Fault from server

java - 索引操作 Java Spring Controller

json - 使用 json4s 解析 JSON 中的空值

json - Bash循环为mongoimport批量合并文件

php - MySQL/PHP : How to get columns and associated data

playframework - 在多个数据库上订购游戏演变

java - playframework 2.2 功能测试