401 PhoneGap iOS App中的未经授权的响应

时间:2012-03-04 23:15:48

标签: javascript ios cordova xmlhttprequest ios-simulator

我在Xcode 4.3中运行iPhone 5.0模拟器。已安装PhoneGap 1.4.1。我有以下index.html文件,类似于http://wiki.phonegap.com/w/page/42450600/PhoneGap%20Ajax%20Sample的示例:

<!DOCTYPE html>
<html>    
    <head>        
        <title>PhoneGap Ajax Sample</title>        
        <script type="text/javascript" src="phonegap-1.4.1.js"></script>        
        <script>
            function appReady(){                                
                var ajax = new XMLHttpRequest();                
                ajax.open("GET","http://search.twitter.com/search.json?q=bacon",true);                
                ajax.onreadystatechange=function(){
                    alert(ajax.readyState);
                    alert(ajax.status);
                    if(ajax.readyState==4 && (ajax.status==200)){
                        document.getElementById('main').innerHTML = ajax.responseText;
                    }
                }               
                ajax.send();                
            }            
            document.addEventListener("deviceready", appReady, false);            
            </script>        
    </head>    
    <body onload="onBodyLoad()">        
        <div id="main">            
            <p>before load</p>            
        </div        
    </body>    
</html>

调试alert()调用到位后,我看到对话框显示2,然后是401,然后是3,然后是401,然后是4,然后是401。

401对话框当然表明请求未经授权。我尝试过除twitter以外的网站但没有成功。我可以在模拟器上使用Safari来浏览网页。当我在Windows上的Eclipse中创建PhoneGap Android项目时,上面的代码在我的Droid 2上按预期运行。我是iOS和PhoneGap开发的新手,所以我可能会忽略一些简单的东西。有什么想法吗?

顺便说一句,关于此问题,还有一两个问题,但设置不同,例如使用过OAuth。

1 个答案:

答案 0 :(得分:2)

我只需将search.twitter.com添加到PhoneGap.plist / ExternalHosts。