從前天開始就在學習mui.ajax和mui.post的方法,因為post比較簡單,先學了post的ajax,,,一開始遇到很多困難,終於花了兩天的時間解決了,要重點謝謝成都猿團教育的諾墨老師,諾墨老師雖然在泰國度假,但是還是很 熱心的幫我解決問題,,,謝謝諾墨老師。
正題,先來看看什么是mui.post吧,
mui.post()方法是對mui.ajax()的一個簡化方法,直接使用POST請求方式向服務器發送數據、且不處理timeout和異常(若需處理異常及超時,請使用mui.ajax()方法),使用方法: mui.post(url[,data][,success][,dataType]),如上登錄鑒權代碼換成mui.post()后,代碼更為簡潔,如下:
mui.post('http://server-name/login.php',{
username:'username',
password:'password'
},function(data){
//服務器返回響應,根據響應結果,分析是否登錄成功;
...
},'json'
});
的卻,上面給的很明白,但是我們只知道前端的Javascript這么寫了,但是后端應該怎么寫卻沒有寫出來,還有值得注意的是我們做的是移動app的開發,我們在真機調試的時候請求的URL地址應該怎么寫他也沒有說出,於是我自己摸索了兩天,,,終於弄懂了一點。我先貼出我的代碼吧
前端代碼:
mui.init();
.mui-btn{
margin-top: 10px;
margin-left: 3px;
width: 98%;
height: 40px;
}
ajax登錄測試
用戶名:
//獲取用戶名
密 碼:
//獲取密碼
//點擊是觸發onclick事件
驗證登錄
//下面才是要點
//獲取表單提交過來的數據 var psw=document.getElementById('psw').value;mui.post('http://192.168.43.5/mapp/mtest/login.php', //請求,地址是服務器本機的ip地址{name:user,
//要傳送的數據psw:psw},function(data){
//服務器返回數據回來時應該做什么的函數if(data=="1"){plus.ui.toast("登錄成功");mui.openWindow({url:'login.html',})}else{plus.ui.toast("用戶名或密碼錯誤");}},'text');
}
其實這個界面都很簡單,,,需要注意的是請求的url地址,一定是服務器的本機的ip地址,我就是輸錯成127.0.0.1地址,在真機調試上不能請求。
下面來看看后端的代碼,我用的是php做后端
<?php
header( "Access-Control-Allow-Origin:*");
header('Access-Control-Allow-Methods:POST');
// 響應頭設置
header('Access-Control-Allow-Headers:x-requested-with,content-type');
ini();
function ini(){
$name=$_POST['name'];
$psw=$_POST['psw'];
// $post= json_decode($post,true);
//echo "$post";
if($name=='kevin'&&$psw=='5817321790'){
echo "1";
}
}
?>
如果直接用電腦的瀏覽器訪問問題倒是不大,,,但是如果用真機調試,或者用另一個域的瀏覽器訪問,就必須加上這三個頭文件,這是跨域提示信息,如果沒有將會出錯。