【问题标题】:Fetch Odata using jquery mobile with phonegap使用带有phonegap的jquery mobile获取Odata
【发布时间】:2015-09-03 11:52:12
【问题描述】:

我开发了一个应用程序,可以从服务器 url http://user:password@xx.xx.x.xxx:xxxx/odata/OdataTMEDVDB/dbname?$format=JSON&$filter=YEAR%20eq%202015&$top=10&$callback=?

获取数据

此查询在浏览器上运行良好,使用 phonegap 编译后,事件根本不会触发以获取数据 这是代码

var query = "http://user:password@xx.xx.x.xxx:xxxx/odata/OdataTMEDVDB/dbname?$format=JSON&$filter=YEAR%20eq%202015&$top=10&$callback= ?”; //这是我的回调

                 $.ajax({
                    数据类型:'jsonp',
                    网址:查询,
                    jsonpCallback: '回调',
                    成功:回调
                });

                函数回调(结果){
                    警报(“你好”);
                    警报(result.d.results.length);
                    var 显示 = result.d;
                    $('#resultdata').html(显示);
                }

请指教

【问题讨论】:

    标签: cordova jquery-mobile odata


    【解决方案1】:

    某些浏览器可以拒绝 URL 基本认证密码。尝试使用beforeSend 将密码直接添加到标题中:

    $.ajax({
       dataType: 'jsonp',
       url: 'http://xx.xx.x.xxx:xxxx/odata/OdataTMEDVDB/dbname?$format=JSON&$filter=YEAR%20eq%202015&$top=10&$callback=?',
       jsonpCallback: 'callback',
       success: callback,
       //New code:
       beforeSend: function (xhr) {
          xhr.setRequestHeader ("Authorization", "Basic user:password");
       },
    });
    

    【讨论】:

    • 感谢@Jan Hommes 的回答,实际上代码在所有浏览器中运行良好,使用phonegap 将代码转换为移动应用程序后问题开始。我已经测试了你的方法,在浏览器中有效但在浏览器中无效移动设备作为应用程序。
    • 你使用base64字符串作为密码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-08
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多