由于在帮助实践与创新中心的伙伴们完成他们的创新实验项目,所以我加入到了考勤开发的项目中,因为要有一个Android的客户端为成果,但是自己又不会用原生的Java来开发,所以决定用之前学过的PhoneGap+HTML5来完成这项工作。
昨晚完成了整个APP的界面设计,所以就开始完成业务逻辑方面的代码工作,因为之前做过一个类似用PhoneGap的客户端,是通过jQuery+Ajax来和自己的电脑来进行交互所以没有遇到什么交互不了的问题,但是这次是通过Ajax来和远程服务器进行交互,结果Ajax一直显示连接错误。
$.ajax({ type:'post', url:'http://202..........'........ success:function(data){}, error(x, s){ alert('与服务器连接不上'); } });
所以就觉得难以理解了,于是只能百度或者Google了,经过一系列的查询,发现其实这样的问题并不难解决,其实只需要它 JSONP,其实之前在学习jQuery中的Ajax的时候就已经接触过它,只不过那个时候没有在意它这么强大的功能。
<div role="main" class="ui-content"> <h1 class="center">学生登录</h1> <form> <ul data-role="listview" data-inset="true"> <li class="ui-field-contain"> <label for="username">学号</label> <input type="text" name="username" id="username" value="" data-clear-btn="true"> </li> <li class="ui-field-contain"> <label for="password">密码</label> <input type="password" name="password" id="password" value="" data-clear-btn="true"> </li> <li class="ui-body ui-body-a"> <input type="button" class="login_button" class="ui-btn ui-btn-a" value="登录" /> </li> </ul> </form> </div><!-- /content -->
var username = $("#username").val();//输入的学号 $.getJSON(DOMAIN_NAME+"Login/jsonpCheckUser?u="+username+"&type=stu&callback=?", function(data){ if(parseInt(data.res) != 1){ $(".brush_window").html('学号不存在'); $(".brush_window").css('left', width/2-60); $(".brush_window").css('top', height/2); $(".brush_window").slideDown(); setTimeout("$('.brush_window').fadeOut(1500);",1500);//设置1.5S关闭该弹窗 } });
function jsonpCheckLogin(){ if(isset($_GET['callback'])){ //判断是否有callback $callback = $_GET['callback']; }else{ $callback = ''; } ..... 这里就是需要进行判断,这个学号是否存在 ..... if(!empty($callback)){ $json = $callback."(".$json.")"; } echo $json; }