Cordova 1.9.0 Ajax 未检索

Posted

技术标签:

【中文标题】Cordova 1.9.0 Ajax 未检索【英文标题】:Cordova 1.9.0 Ajax not retrieving 【发布时间】:2012-07-05 14:33:46 【问题描述】:

我一直在关注http://wiki.phonegap.com/w/page/42450600/PhoneGap%20Ajax%20Sample 上的教程 构建一个简单的 AJAX 请求。但我希望看到的结果只是一张空白的白页。

<!DOCTYPE html>
<html>
    <head>
        <title>PhoneGap Ajax Sample</title>
        <script type="text/javascript" src="phonegap.js"></script>
        <script type="text/javascript">
            function appReady()
                var ajax = new XMLHttpRequest();
                ajax.open("GET","http://search.twitter.com/search.json?q=bacon",true);
                ajax.send();

                ajax.onreadystatechange=function()
                    if(ajax.readyState==4 && (ajax.status==200||ajax.status==0))
                        eval('var data = ' + ajax.responseText + ';');
                        var theResults = data.results;
                        alert(theResults);
                        var theHTML = '';
                        for(var i=0;i<theResults.length;i++)
                            theHTML += ['<div class="tweet"',
                                            '<div class="avatar"> <img src='+theResults[i].profile_image_url+' /></div>',
                                            '<div class="tweet_content">',
                                                '<h2>'+theResults[i].from_user+'</h2>',
                                                '<p>'+theResults[i].text+'</p>',
                                            '</div>',
                                        '</div>'].join('');
                        
                        document.getElementById('main').innerHTML = theHTML;
                    
                
            
            document.addEventListener("deviceready", appReady, false);

        </script>

        <style type="text/css">
            .tweet padding-bottom:5px;
            .avatar float: left; height: 48px; width: 48px;
            .tweet_content margin-left: 60px; min-height: 48px;
        </style>
    </head>
    <body>
        <div id="main">

        </div>
    </body>
</html>

有什么想法吗?我环顾四周,听到 Cordova.plist this 和 External Hosts that,但找不到添加白名单服务器的位置...

任何帮助将不胜感激!

【问题讨论】:

以上代码在cordova 1.9和android 2.2中对我来说很好 对于白名单在您的项目文件夹中打开/res/xml/cordova.xml 并设置&lt;access origin=''/&gt; 标签。我正在使用&lt;access origin="http://127.0.0.1*"/&gt; 【参考方案1】:

您有权访问您的应用程序中的另一个网站。只需像这样更改cordava.xml。 要访问推特,

<?xml version="1.0" encoding="utf-8"?>
<cordova>
    <access origin="http://search.twitter.com/"/>
    <log level="DEBUG"/>
</cordova>

访问所有网站。

<?xml version="1.0" encoding="utf-8"?>
<cordova>
    <access origin="*"/>
    <log level="DEBUG"/>
</cordova>

【讨论】:

以上是关于Cordova 1.9.0 Ajax 未检索的主要内容,如果未能解决你的问题,请参考以下文章

带有 CORS 的 Ajax 请求未通过

Phonegap Cordova Ajax 请求 404(未找到)错误

使用带有 JSONP 的 AJAX 未捕获的 SyntaxError 和 CORS 错误

超时 AJAX 请求 Cordova 5

来自 ASP NET Web API 的 CORS 阻止 Ajax POST 调用 - 对预检请求的响应未通过访问控制检查

CORS 登录到 expressjs/passportjs 应用程序 401 未经授权