如何在我的phonegap项目中访问远程服务器json / html数据?

时间:2014-04-09 18:10:38

标签: cordova

在我的手机间隙项目中,我需要从远程服务器访问json / html数据。我尝试使用Xmlhttprequest,但它无法正常工作。如果有人帮助我,将会有所帮助。提前谢谢。

注意:我正在使用php的手机差距

1 个答案:

答案 0 :(得分:1)

以下是我用于连接REST样式API(使用jquery)的一些代码:

var api = {
    connection: {
        baseUrl: 'your_domain.tld',
        apiUrl: '/some_path/'
    },
    initialize: function() {
        api.setupAjaxDefaults();
    },
    setupAjaxDefaults: function() {
        var headers = {
            'Accept': "application/json; encoding='utf-8'",
            'Content-Type': "application/json; encoding='utf-8'"
        };
        $.ajaxSetup({
            headers: headers,
            dataType: 'json',
            crossDomain: true
        });
    },
    testCall: function(data) {
        api.ajaxGet( someMethod, data, aSuccessCallback, anErrorCallback );
    },
    ajaxGet: function(methodName, data, successCallback, errorCallback) {
        $.ajax({
            url: api.connection.baseUrl + api.connection.apiUrl + methodName,
            data: data,
            cache: false,
            type: 'GET',
            success: function(result, status, xhr) {
                if ($.isFunction(successCallback)) {
                    successCallback(result);
                }
            },
            error: function() {
                if ($.isFunction(errorCallback)) {
                    errorCallback();
                }
            }

        });
    },
    ajaxGetCached: function(methodName, data, successCallback, errorCallback) {
        $.ajax({
            url: api.connection.baseUrl + api.connection.apiUrl + methodName,
            data: data,
            type: 'GET',
            success: function(result, status, xhr) {
                if ($.isFunction(successCallback)) {
                    successCallback(result);
                }
            },
            error: function() {
                if ($.isFunction(errorCallback)) {
                    errorCallback();
                }
            }

        });
    }
};

要使用此功能,请先拨打api.initialize();

然后拨打电话(上面的testCall示例):

api.testCall(someApiMethod, { data: someData, moreData: evenMore });