1

phonegapアプリでjqueryを使ってWebseviceにアクセスしたいです。しかし、応答が0になる

これは私のコードです

     $(function () {

            $("#callAjax").click(function () {
                $.ajax({
                    type: "POST",
                    //url: "http://ws.geonames.org/postalCodeSearchJSON?postalcode=90210&maxRows=10",
                    url: " http://64.15.136.251:8080/onestatus/webservice/login?email=kk@kk.com&password=123456",
                    // data: ({ name: theName }),
                    data: ({}),
                    cache: false,
                    //dataType: "text",
                    dataType: "json",
                    success: onSuccess
                });

            });

            $("#resultLog").ajaxError(function (event, request, settings, exception) {
                $("#resultLog").html("Error Calling: " + settings.url + "<br />HTPP Code: " + request.status);
            });

            function onSuccess(data) {
                var result = $.parseJSON(data);
                var arrayObject = new Array();
                for (i = 0; i < result.user.length; i++) {
                    $('#employeeList').append('<li>' + result.user[i].response + '</li>');
                    $('#employeeList').append('<li>' + result.user[i].user_id + '</li>');
                    $('#employeeList').append('<li>' + result.user[i].session_id + '</li>');
                }
 }

        });

私のコードに何か問題があります

4

2 に答える 2

1

URL から返された Json を解析する必要はありません。Json は既に直接埋め込まれており、ブラウザによって正しく処理されます。

この {} は JSON のオブジェクトを表します。

これです:

  var result = $.parseJSON(data);
            var arrayObject = new Array();
            for (i = 0; i < result.user.length; i++) {
                $('#employeeList').append('<li>' + result.user[i].response + '</li>');
                $('#employeeList').append('<li>' + result.user[i].user_id + '</li>');
                $('#employeeList').append('<li>' + result.user[i].session_id + '</li>');
            }

次のように解析せずに試してみてください:

var arrayObject = new Array();
            for (i = 0; i < data.user.length; i++) {
                $('#employeeList').append('<li>' + data.user[i].response + '</li>');
                $('#employeeList').append('<li>' + data.user[i].user_id + '</li>');
                $('#employeeList').append('<li>' + data.user[i].session_id + '</li>');
            }

同じことを行うために jQuery の方法を使用することもできます。

  function onSuccess(data) {

            $.each(data.user, function(i, object) {
                $.each(object, function(property, value) {
                    alert(property + "=" + value);
                    $('#employeeList').append('<li>' + value+ '</li>');
                });
            });
        }
于 2012-07-06T12:33:16.733 に答える
1

これを試してください

$.ajax({
            type: "POSt",
            url: "http://64.15.136.251:8080/onestatus/webservice/login",
            data: "{email:'kk@kk.com',password:'123456'}",
            contentType: "application/json; Characterset=utf-8",
            dataType: "json",
            async: true,
            success: function (data) {
                alert(data);
            },
            error: function (request, status, error) {
                alert("Exception Handling :  \n" + request.responseText);

            }
        });
于 2012-07-06T12:03:35.070 に答える