3

Cordovaプラグインを使用してREST呼び出しをJQueryAJAXPOSTに変換しようとしています。私はJQueryコードを正しく持っていません、呼び出しは接続拒否エラーを受け取ります(ローカルホストを打つ)。ローカルホストに対してGETリクエストを正常に行っているので、接続の問題はありません。

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呼び出しでデータオプションを正しく使用しているかどうかはわかりませんが、サーバー側に渡したいデータを配置する場所は私の理解です。

この同じTrackResourceクラスへの他のGET呼び出しが機能しているので、URLのベース部分が正しいことがわかります。trackid値も正しく入力されていることを知っています。

4

2 に答える 2

3

JSON文字列を投稿する場合は、必ず設定してくださいcontentType: "application/json"

var trackingJSON = JSON.stringify(tracking_data);
var urlAjax =  "http://localhost:7001/ds/resources/track/" + trackid;

$.ajax({
    type: "POST",
    url: urlAjax,
    contentType: "application/json",
    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'
});
于 2013-03-25T16:19:16.910 に答える
0

ローカルホストにアクセスするには、コンピューターのルーターアドレス192 ....を使用する必要がありました...実際のAndroidデバイスでアプリケーションを実行していましたが、ローカルホストまたは127.0.0.1を使用しようとしていると思います。 AJAX呼び出しが問題を引き起こしている必要があります。

于 2013-03-28T00:14:43.167 に答える