Android Cordova2.3 -jquery ajax($ .support.cors = true)无效(相同的请求适用于chrome浏览器)

时间:2013-01-29 10:10:27

标签: android jquery cordova jquery-mobile

我已经阅读过有关此问题的信息,并已尝试在线尝试所有可能的解决方案,但没有任 这是我的HTML代码......

<!DOCTYPE html> 
<head>
<link rel="stylesheet" href="jquery.mobile-1.2.0.min.css" />
<script src="jquery-1.8.2.min.js"></script>
<script>

$( document ).bind( "mobileinit", function() {
    // Make your jQuery Mobile framework configuration changes here!
    console.log("made cors changes");
    //$.mobile.ajaxEnabled = true;
    $.support.cors = true;
    $.mobile.allowCrossDomainPages = true;

});
</script>
<script src="cordova-2.3.0.js"></script>
<script src="jquery.mobile-1.2.0.min.js"></script>
</head>
<body>

<div data-role="page" id="page1">
    <div data-theme="a" data-role="header" data-position="fixed" >
        <h4>
            JLT
        </h4>

    </div>
    <div data-role="content" >

        <p>
        Send data to server?
        </p>
        <a data-role="button" id="transportYES" data-inline="true">
            Yes
        </a>
        <a data-role="button" id="transportNO" data-inline="true">
            No
        </a>


    </div>
</div>


<script>

$( "#transportYES" ).bind( "click", function(event, ui) {
  console.log('clicked');


    $.ajax({
   type: "GET",
   url: "http://api.wordnik.com//v4/word.json/recant/definitions",
   data: "includeRelated=false&includeTags=false&useCanonical=false&api_key=7741b711eec09c12e05070046d60da6b92e03750359859fde",
   dataType: "json",
   beforeSend:function(){
   console.log('before sending');
   },
   success: function(msg){
     alert( msg[0].word );
   },
   error: function(xhr, ajaxOptions, thrownError){
   console.log(xhr);

     alert( 'error' );
   }
 });


});

</script>
</body>
</html>

如果我从chrome运行此代码我从服务器获得响应,但当与phonegap打包时,它无法从Android模拟器工作.. 我甚至在config.xml文件中允许所有域如下<access origin=".*"/>。 长期以来一直坚持这个问题..请帮助.. !!!!

它可以在设备上运行,问题出在模拟器上......以前无法获得测试设备......可以节省这么多时间...... :)

1 个答案:

答案 0 :(得分:0)

除非您将此代码放在jQuery和jQuery Mobile之间的文件中,否则您的mobileinit事件将起作用。

你必须做如下(只是一个例子)

<script src="js/external/jquery-1.8.2.min.js"></script>
<script src="js/configs.js"></script>
<script src="js/external/jquery.mobile-1.2.0.js"></script>

在你的configs.js里面放置你的mobileinit

$( document ).bind( "mobileinit", function() {
   //your code
});