我试图将使用Cordova插件的REST调用转换为JQuery AJAX POST。我没有正确的JQuery代码,该调用正在获取连接拒绝错误(命中localhost)。我成功地向我的本地主机发出GET请求,所以没有连接问题。使jquery AJAX POST到resple API
的REST API代码:
@Path("/track")
public class TrackResource {
...
在TrackResource类的方法,我试图打:
@POST
@Path("{trackid}")
@Consumes("application/json")
@Produces("application/json")
public Response addToResource(@PathParam("trackid") String trackid, String bodyJson) {
Ajax代码:
var trackingJSON = JSON.stringify(tracking_data);
var urlAjax = "http://localhost:7001/ds/resources/track/" + trackid;
$.ajax({
type: "POST",
url: urlAjax,
data: trackingJSON,
beforeSend: function() { $.mobile.showPageLoadingMsg("b", "Loading...", true) },
complete: function() { $.mobile.hidePageLoadingMsg() },
success: function(data) { alert("ajax worked"); },
error: function(data) {alert("ajax error"); },
dataType: 'json'
});
我不是当然,如果我正确使用ajax调用中的数据选项,但是我的理解是,你将把你想传递的数据放在哪里r方。
我确实有其他GET调用工作的这个相同的TrackResource类,所以我知道URL的基础部分是正确的。我知道trackid值也是正确填充的。
+0
你能制定完全相同的POST,你试图用AJAX做,并直接将它POST到端点来看看会发生什么?我真的没有看到jQuery的任何问题。 –
2013-03-25 16:18:58
+0
是的,使用firefox REST客户端我可以把这篇文章发到我的本地主机上。 –
2013-03-25 21:54:45
+0
我需要使用contentType参数并将其设置为application/json。但是,这并没有解决我的连接问题。我仍然得到一个java.net.ConnectionException。 –
2013-03-26 00:39:41