2017-05-31 107 views
0

我正在使用框架2.5.X播放,我试图从控制器中使用AJAX调用来获取一些数据,该按钮单击按钮执行。下面是Ajax代码:带参数的Ajax GET请求播放框架2.5.X

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查询结果的List。

无论如何,我的主要问题是,我似乎无法发送这个'uri'在我的GET请求。我试着到处寻找如何做到这一点,所有的结果做了,我只是在路由的方式一样,但我仍然得到一个错误:

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

我真的很感激如何发送AJAX任何帮助/例子通过参数获取请求。

谢谢。

回答

0

其实我想通了,我的URI开始与“HTTP”,这打乱了AJAX调用。删除它可以解决问题。

+0

这是因为它以'http://'开头,而不仅仅是'http'。在将URI添加到请求字符串之前,您需要对URI进行编码。 –

0

它看起来像你的网址不工作,因为你没有标记参数的开始?

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

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

+0

我修复了Ajax调用,但仍然是同样的问题。这里的错误: roles /?uri = http://example.com/ontology#example_Role_28&_=1496321694753无法加载资源:服务器回应状态为404(未找到) 我真的尝试了所有官方文档没有帮助,而旧的计算器答案确实让我无所适从。 –