最近需要对一个b/s系统,做一个手机应用。手机选择android2.3.3版本。
为了了开放简单,使用phonegap框架,这样可以直接用html开放手机应用了。
手机需要获取服务器上的数据和更新数据到服务器上。
我在b/s系统开放了一个页面(android.aspx)来获取数据 和 更新数据
通过手机上html5页面来访问这个开放的页面.
代码:
- HTML code
<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <meta name="viewport" content="width=device-width,height=device-height, initial-scale=1, maximum-scale=1, user-scalable=no"/> <title>XXXX创建系统</title> <link href="scripts/jquery.mobile/jquery.mobile-1.1.0.min.css" rel="stylesheet" type="text/css" /> <script src="scripts/jquery.mobile/jquery.js" type="text/javascript"></script> <script src="scripts/jquery.mobile/jquery.mobile-1.1.0.min.js" type="text/javascript"></script></head><body> <div data-role="page" id="home"> <div data-role="header" data-position="fixed"> XXXXX </div> <div data-role="content" style="width: 100%; height: 100%; padding: 0px;"> <script type="text/javascript">// function ajaxGet()// {// var AjaxUrl = "http://localhost:52309/APIMobile/Android.aspx?AjaxType=GetTask&UserID=Adminsys&jsoncallback=?"; // $.getJSON(AjaxUrl, function (Json) { alert(Json.VoteID); alert(Json.VoteName); }); // } function ajaxGet() { $.ajax({ type : "GET", url : "http://localhost:52309/APIMobile/Android.aspx?AjaxType=GetTask&UserID=Adminsys&jsoncallback=?", dataType : "jsonp", jsonp: 'jsoncallback', success : function(Json) { alert(Json.VoteID); alert(Json.VoteName); return true; } }); } </script> <a href="javascript:void()" onclick="ajaxGet()">ddddd</a> </div> <div data-role="footer" data-position="fixed"> <div data-role="navbar" data-iconpos="bottom"> <ul> <li><a href="#home" data-icon="grid" data-transition="none">获取任务</a></li> <li><a href="#new" data-icon="star" data-transition="none">投票</a></li> <li><a href="#travellist" data-icon="gear" data-transition="none">信息采集</a></li> </ul> </div> </div> </div></body></html>
出现如下问题:
如果直接用浏览器运行上面html5页面,能获取到服务上数据。
如果在安卓的模拟器上运行,发现不能成功,提示如下错误:07-13 08:01:26.036: E/Web Console(408): SyntaxError: Parse error at undefined:1
这怎么回事,是跨域访问造成的吗,怎么解决
------解决方案--------------------
模拟器上面貌似不能用localhost
------解决方案--------------------
phonegap是跨平台的,不过最近才起步,用的人还不多啊,我也才学习,还不知道是什么原因,不过你试一试换下端口或者直接用IP地址来访问呢!
------解决方案--------------------
直接用ip地址。
------解决方案--------------------
127.0.0.1试试看管不管用