【问题标题】:Ajax GET request with a parameter Play Framework 2.5.X带有参数 Play Framework 2.5.X 的 Ajax GET 请求
【发布时间】:2017-05-31 17:57:37
【问题描述】:

我正在使用 play Framework 2.5.X,我正在尝试使用在单击按钮时执行的 AJAX 调用从我的控制器中获取一些数据。这是ajax代码:

lastClickedWrench = $(this).attr('id');
uri = 'http://example.com/ontology#' + lastClickedWrench;
console.log("uri :" + uri);
$.ajax({
    type: 'GET',
    url: '/roles/test:uri='+uri+'',
    success: function(data){
        console.log('success', data);
    }
});
});

我正在尝试将此 Uri 发送到控制器,以便我可以执行查询,路由文件如下所示:

GET     /roles/test:uri         app.controllers.RoleController.sendJson(uri : String)

这是它调用的控制器:

public Result sendJson(String uri)
{
    RoleDatabaseAccess access = new RoleJenaSparqlAccess();

    List<Skill> skills = access.getAssociatedSkills(uri);

    return ok(Json.toJson(skills));
}

getAssociatedSkills 方法返回一个包含 SPARQL 查询结果的列表。

无论如何,我的主要问题是我似乎无法在我的 GET 请求中发送这个“uri”。我尝试到处寻找如何做到这一点,所有结果都按照我在路线中所做的方式进行,但我仍然收到错误:

jquery.min.js:4 
GET http://localhost:9000/roles/test:uri=http://wiserskills.com/ontology 404 (Not Found)

非常感谢任何有关如何发送带参数的 AJAX GET 请求的帮助/示例。

谢谢。

【问题讨论】:

    标签: ajax playframework


    【解决方案1】:

    您的 URL 似乎不起作用,因为您没有用 ? 标记参数的开头?

    你有/roles/test:uri=...

    你应该有/roles/test?uri=...

    【讨论】:

    • 我修复了 Ajax 调用,但仍然是同样的问题。这是错误:roles/?uri=example.com/ontology#example_Role_28&_=1496321694753 无法加载资源:服务器响应状态为 404(未找到)我真的尝试了官方文档没有帮助的一切,而旧的 stackoverflow 答案完全符合我的要求我在做。
    【解决方案2】:

    我实际上想通了,我的 uri 以“http”开头,这会弄乱 AJAX 调用。删除它可以解决问题。

    【讨论】:

    • 因为它以http://开头,而不仅仅是http。在将 URI 添加到请求字符串之前,您需要对其进行编码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多