错误 - access-control-allow-origin(phonegap android)不允许origin null

时间:2014-08-01 09:22:05

标签: javascript android json cordova

我正在尝试在phonegap中运行一个Android应用程序,它从链接中获取JSON数据。 我编写的html代码(参考教程)如下

<html>
 <head> 
 <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> 
<script type="application/javascript">

$(document).ready(function(){

    $.support.cors = true;
    $.mobile.allowCrossDomainPages = true;

    });


function loadJSON() 
{   
    var data_file = "http://www.tutorialspoint.com/json/data.json"; 

    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
        http_request=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
        http_request=new ActiveXObject("Microsoft.XMLHTTP");
      }


     http_request.onreadystatechange  = function(){ 
         if (http_request.readyState == 4 && http_request.status == 200) 
             {
              var jsonObj = JSON.parse(http_request.responseText); 
              document.getElementById("Name").innerHTML =  jsonObj.name;     
              document.getElementById("Country").innerHTML = jsonObj.country; 
             }
     }
     http_request.open("GET", data_file, true); 
     http_request.send();
}
     </script> 
     </head>
     <body>
      <h1>Cricketer Details</h1> 
      <table class="src"> 

     <tr><th>Name</th><th>Country</th></tr> 
     <tr><td><div id="Name">Sachin</div></td>
      <td><div id="Country">India</div></td></tr>
     </table> 

     <div class="central"> 
     <button type="button" onclick="loadJSON()">Update Details </button>
      </body>
       </html> 

我在config.xml文件中添加了<access origin=".*"/>。 我搜索了网页和提到的网站,在我的脚本中添加以下代码,这将解决我的问题。

$(document).ready(function(){

$.support.cors = true;
$.mobile.allowCrossDomainPages = true;

});

问题是虽然这个网页在我的浏览器(chrome)上工作,我已经安装了CORS扩展,但是当我在模拟器上运行它时,它不起作用。它在logcat中出错,表示&#34; XMLHttpRequest无法加载http://www.tutorialspoint.com/json/data.json。 Access-Control-Allow-Origin不允许使用null。&#34; 请帮我解决这个问题并在模拟器上运行这个应用程序,因为我将开发一个与此功能相似的应用程序。

编辑:在我的脚本中添加了jQuery,但仍然存在同样的问题..

$(document).ready(function(){

    $("#button").click(function(){
        var link="http://www.tutorialspoint.com/json/data.json";
        $.ajax({
            url: link,
            type: "GET",
              dataType: "json",
            success: function(data) {

                console.log("The server returned " + data.name);
                //Play with the received json data.
                document.getElementById("Name").innerHTML =  data.name;      
                document.getElementById("Country").innerHTML = data.country; 
            },
            error: function(model, response) {
                alert("Web service error: " + response.responseText);
            }
        });
    });
    });

对于那些将此问题标记为重复的人,其他类似的问题并没有解决我的问题,因此我提出了一个新的更具体的问题。

解: 使用cordova-2.7.0解决了问题

0 个答案:

没有答案