Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery Get函数在真正的移动设备上不起作用_Javascript_Android_Jquery_Cordova - Fatal编程技术网

Javascript jQuery Get函数在真正的移动设备上不起作用

Javascript jQuery Get函数在真正的移动设备上不起作用,javascript,android,jquery,cordova,Javascript,Android,Jquery,Cordova,我一直在开发一个应用程序,从dropbox收集csv文件,然后显示它。自从我使用phonegap以来,我一直在用浏览器Firefox进行开发和测试。那天结束时,我用安卓3.2.1将它加载到我的HTC平板电脑上,但它就是不起作用。以下是当前使用的代码: $.get('https://dl.dropboxusercontent.com/u/53792213/App/David.csv', function(data) { alert('Success'); // Do

我一直在开发一个应用程序,从dropbox收集csv文件,然后显示它。自从我使用phonegap以来,我一直在用浏览器Firefox进行开发和测试。那天结束时,我用安卓3.2.1将它加载到我的HTC平板电脑上,但它就是不起作用。以下是当前使用的代码:

$.get('https://dl.dropboxusercontent.com/u/53792213/App/David.csv', function(data) {
        alert('Success');
        // Do stuff
    })
    .fail(function() { alert('error'); });
这段代码在Firefox和安卓4.2.2的安卓仿真器上运行得非常好。但不是在真正的物理设备上

我简直无法解决这个问题。不会给出错误,也不会调用fail函数。我加了两个警报,不要开火

这是非常令人沮丧的,因为我没有远程调试的权限,而且我不能在桌面上调试,因为它在桌面上运行良好

我正在使用jQuery2.0.2和jQueryMobile 1.3.1

我很想知道到底发生了什么,哪怕是一点点线索

编辑:为了找出错误,现在它实际上抛出了一个错误,我将我的语句修改为:

$.get('https://dl.dropboxusercontent.com/u/53792213/App/David.csv', function(data) {
        alert('Success');
        // Do stuff
    })    
.fail(function(jqXHR, textStatus, errorThrown) {
            alert("An AJAX error occured: " + textStatus + "\nError: " + errorThrown);
        });
但是,这是它返回的错误:

An AJAX error occured: error
Error:
一条空白的错误消息?要么我做错了什么,要么javascript想慢慢杀了我

编辑2:

在做了一些实验之后,我发现了更奇怪的行为。如果我将get()函数直接添加到我的deviceReady函数中,就像在加载应用程序并准备就绪时它会被触发一样,那么它工作得非常好

但是(这就是一直发生的事情)如果我在设备就绪函数中绑定一个click jquery事件,然后在其中调用get函数,它就不起作用了。我们来看看这个:

var App = {

// Application Constructor
initialize: function() {
    this.bindEvents();
},
bindEvents: function() {
    document.addEventListener('deviceready', this.onDeviceReady, false);
},
onDeviceReady: function() {
    //This does work
    $.get('http://dl.dropboxusercontent.com/u/53792213/App/DavidColson.csv', function(data) {
        alert('Success');
    })
    .fail(function(jqXHR, textStatus, errorThrown) {
         alert("An AJAX error occured: " + textStatus + "\nError: " + errorThrown);
     });
    $("#Button").bind("click", function(event) {
        alert("Hello");
        //This does not work       
        $.get('http://dl.dropboxusercontent.com/u/53792213/App/DavidColson.csv', function(data) {
            alert('Success');
        })
        .fail(function(jqXHR, textStatus, errorThrown) {
            alert("An AJAX error occured: " + textStatus + "\nError: " + errorThrown);
        });
    });
},
})


在上述情况下,会触发hello警报,但不会触发success警报,取而代之的是一个空白ajax错误。有什么想法吗?

为什么同时使用jQuery和jQuery mobile?似乎您应该能够使用移动设备,而使用这两个库可能会导致冲突

您可以尝试添加呼叫以解决此问题:

<script type="text/javascript">

  // This takes out the jQuery variable '$' from the global scope
  $.noConflict();

  jQuery(document).ready(function($) {
    jQuery.get('https://dl.dropboxusercontent.com/u/53792213/App/David.csv',function(data)  
    {
       alert('Success');
    }).fail(function() { alert('error'); });
  });

  //rest of your normal jQuery that uses the $. here

</script>

//这将从全局范围中取出jQuery变量“$”
$.noConflict();
jQuery(文档).ready(函数($){
jQuery.get('https://dl.dropboxusercontent.com/u/53792213/App/David.csv,函数(数据)
{
警惕(“成功”);
}).fail(函数(){alert('error');});
});
//使用$的常规jQuery的其余部分。在这里

编辑:看起来还没有。尝试引用jQuery 1.9.1,看看是否有效。

我尝试删除jQuery并使用移动设备,但随后该应用程序心脏病发作,没有正确的diplay,出现错误,然后崩溃。除此之外,您显然需要包含jquery核心。您是否尝试了noConflict函数?请参阅我的编辑。根据jQuery2的文档,jQueryMobile与jQuery2不兼容。我有进展了,谢谢。虽然它仍然不能完全工作,但我收到了抛出的“错误”警报。我可以解决这个问题。FYI.error()也被弃用为.fail(),因为您使用https请求资产,如果您的页面不是从同一台服务器使用https(dropbox域)提供的,那么错误的一个潜在来源就是您违反了浏览器中的同源策略。我如何解决这个问题?它实际上并不是一个浏览器,而是安卓系统上的一个网络视图。我希望有办法解决这个问题。或者在phonegap上禁用了将文件传输到appApparently跨域的其他方式。因此,这不是问题。您可能必须根据phonegap文档在此处列出域的白名单: