【问题标题】:how can i access remote server json/html data in my phonegap project?如何在我的 phonegap 项目中访问远程服务器 json/html 数据?
【发布时间】:2014-04-21 06:01:48
【问题描述】:

在我的电话间隙项目中,我需要从远程服务器访问 json / html 数据。我尝试使用 Xmlhttprequest,但它不起作用。如果有人帮助我,这将有所帮助。提前致谢。

注意:我在 php 中使用 phone gap

【问题讨论】:

  • Note: I am using phone gap with php 您是否尝试在您的设备上运行 php?还是你在服务器上对 php 脚本进行 ajax 调用?
  • 不不,我不想运行 php。我只想在远程服务器上执行一个 php 脚本,并想在我的应用程序中显示结果。

标签: cordova


【解决方案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 });

【讨论】:

    猜你喜欢
    • 2012-05-17
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多