【问题标题】:Call Ajax Play FrameWork调用 Ajax 播放框架
【发布时间】:2013-07-02 10:12:30
【问题描述】:

ajax有问题,玩framework 2.1.1:

我的游戏项目

路线:

POST /sample/testapi controllers.Application.testapi()

GET /sample/ajax controllers.Application.ajax()

Application.java

   public static Result testapi() {
           DynamicForm dynamicForm = DynamicForm.form().bindFromRequest();
           String data= dynamicForm.get("data");
           Logger.debug(data);
           return ok("<user no='1'><id>1</id><name>Peter</name></user>");
    }
    public static Result ajax() {
           return ok(ajax.render());
    }

当我通过 ajax 从 ajax.scala.html 调用操作“testapi”时

我的 ajax 代码

$.ajax({
网址:“http://localhost:3333/sample/testapi”,
类型:'POST',
数据:{数据:“测试”},
数据类型:“文本”,
成功:函数(结果){
警报(结果);
},
错误:函数(请求,错误){
警报(错误);
}
});

它工作正常。

我有一个 html 文件,我通过 ajax 调用来播放项目。

动作已被调用,但没有返回结果并显示警报“错误”。

请帮助我。谢谢。

【问题讨论】:

  • 在浏览器中使用一些检查工具在新窗口中打开 POST (ajax) 请求并检查您的控制器是否没有抛出异常。很难说你的电话出了什么问题。
  • 错误状态为0
  • 只是为了傻笑,您是否尝试过使用 API 端点的路由控制器而不是将路由硬编码到 url 变量中?这也可能不是问题,但看起来您正在发回 XML 数据,但您将其设置为接受“文本”类型。
  • 如果 AJAX 正在工作并且正在调用控制器,但没有发回结果,您是否检查过您的 Application.log 文件?
  • "text" 或 "xml" 类型也不起作用。我认为这不是问题。我不明白使用 API 端点的路由控制器而不是将路由硬编码到 url 变量中。你能给我解释一下吗?

标签: playframework-2.1


【解决方案1】:

我添加了 "response().setHeader("Access-Control-Allow-Origin", "*");"我的行动。

   public static Result testapi() {
       response().setHeader("Access-Control-Allow-Origin", "*");

       DynamicForm dynamicForm = DynamicForm.form().bindFromRequest();

       String data= dynamicForm.get("data");
       Logger.debug(data);
       return ok("<user no='1'><id>1</id><name>Peter</name></user>");

}

"response().setHeader("Access-Control-Allow-Origin", "*");"允许其他域调用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 2013-02-20
    • 2016-12-23
    • 1970-01-01
    相关资源
    最近更新 更多