MUi开发: mui.post学习心得、php做后端和跨域的解决办法
2017-05-23 11:14
405 查看
正题,先来看看什么是mui.post吧,
mui团队对mui.post的解释
的却,上面给的很明白,但是我们只知道前端的JavaScript这么写了,但是后端应该怎么写却没有写出来,还有值得注意的是我们做的是移动app的开发,我们在真机调试的时候请求的URL地址应该怎么写他也没有说出,于是我自己摸索了两天,,,终于弄懂了一点。我先贴出我的代码吧
前端代码:
[html] view
plain copy
<span style="font-size:18px;"><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title></title>
<script src="js/mui.min.js"></script>
<link href="css/mui.min.css" rel="stylesheet"/>
<script type="text/javascript" charset="utf-8">
mui.init();
</script>
<style type="text/css">
.mui-btn{
margin-top: 10px;
margin-left: 3px;
width: 98%;
height: 40px;
}
</style>
</head>
<body>
<header class="mui-bar mui-bar-nav">
<h1 class="mui-title">ajax登录测试</h1>
</header>
<div class="mui-content">
<form class="mui-input-group">
<div class="mui-input-row">
<label>用户名:</label>
<input type="text" class="mui-input-clear" id="name" placeholder="请输入用户名"> //获取用户名
</div>
<div class="mui-input-row">
<label>密 码:</label>
<input type="password" class="mui-input-clear" id="psw" placeholder="请输入密码"><span style="white-space:pre"> </span>//获取密码
</div></span>
[html] view
plain copy
<span style="font-size:18px;"></span><pre name="code" class="html"><span style="font-size:18px;"><span style="white-space:pre"> </span>//点击是触发onclick事件</span>
<button type="button" class="mui-btn mui-btn-blue" onclick="init()">验证登录</button></form> </div></body>bian
//下面才是要点<script type="text/javascript">function init(){var user=document.getElementById('name').value;//获取表单提交过来的数据 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');}</script> </html>
其实这个界面都很简单,,,需要注意的是请求的url地址,一定是服务器的本机的ip地址,我就是输错成127.0.0.1地址,在真机调试上不能请求。
下面来看看后端的代码,我用的是PHP做后端
[php] view
plain copy
<span style="font-size:18px;"><?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";
}
}
?></span>
如果直接用电脑的浏览器访问问题倒是不大,,,但是如果用真机调试,或者用另一个域的浏览器访问,就必须加上这三个头文件,这是跨域提示信息,如果没有将会出错。
mui团队对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地址应该怎么写他也没有说出,于是我自己摸索了两天,,,终于弄懂了一点。我先贴出我的代码吧
前端代码:
[html] view
plain copy
<span style="font-size:18px;"><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title></title>
<script src="js/mui.min.js"></script>
<link href="css/mui.min.css" rel="stylesheet"/>
<script type="text/javascript" charset="utf-8">
mui.init();
</script>
<style type="text/css">
.mui-btn{
margin-top: 10px;
margin-left: 3px;
width: 98%;
height: 40px;
}
</style>
</head>
<body>
<header class="mui-bar mui-bar-nav">
<h1 class="mui-title">ajax登录测试</h1>
</header>
<div class="mui-content">
<form class="mui-input-group">
<div class="mui-input-row">
<label>用户名:</label>
<input type="text" class="mui-input-clear" id="name" placeholder="请输入用户名"> //获取用户名
</div>
<div class="mui-input-row">
<label>密 码:</label>
<input type="password" class="mui-input-clear" id="psw" placeholder="请输入密码"><span style="white-space:pre"> </span>//获取密码
</div></span>
[html] view
plain copy
<span style="font-size:18px;"></span><pre name="code" class="html"><span style="font-size:18px;"><span style="white-space:pre"> </span>//点击是触发onclick事件</span>
<button type="button" class="mui-btn mui-btn-blue" onclick="init()">验证登录</button></form> </div></body>bian
//下面才是要点<script type="text/javascript">function init(){var user=document.getElementById('name').value;//获取表单提交过来的数据 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');}</script> </html>
其实这个界面都很简单,,,需要注意的是请求的url地址,一定是服务器的本机的ip地址,我就是输错成127.0.0.1地址,在真机调试上不能请求。
下面来看看后端的代码,我用的是PHP做后端
[php] view
plain copy
<span style="font-size:18px;"><?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";
}
}
?></span>
如果直接用电脑的浏览器访问问题倒是不大,,,但是如果用真机调试,或者用另一个域的浏览器访问,就必须加上这三个头文件,这是跨域提示信息,如果没有将会出错。
相关文章推荐
- mui.post学习心得、php做后端和跨域的解决办法
- Android开发心得-系统休眠时WIFI连接断开的解决办法
- 使用Eclipse开发php应用,中文提示乱码的解决办法
- 后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
- php学习笔记(8)mysql多行同时更新数据解决办法
- php(LAMP)开发环境配置相关问题及解决办法
- JavaScript学习--Item33 跨域总结与解决办法
- PHP简单实现HTTP和HTTPS跨域共享session解决办法
- 后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
- Android开发心得——点击EditText的时候,输入法把整体布局顶出了屏幕?这里提供一个我个人的解决办法
- 当ie地址栏参数为中文时,传给php后端时乱码的解决办法
- 学习Java web 开发遇到的问题及解决办法!
- 基于.Net Framework 4.0 Web API开发(5):ASP.NET Web APIs AJAX 跨域请求解决办法(CORS实现)
- PHP在iframe 中session跨域丢失的解决办法
- [绝对经典]Linux+Mysql+Apache+Php开发环境搭建全过程及问题的解决办法
- ajax+php $.post()中文乱码解决办法(utf-8 ---> gb2312)
- android开发学习中的问题:error: device not found解决办法
- 前后端分离。前端POST请求参数过长,导致400错误解决办法及分析
- PHP学习之PHPStrom 配置问题 PHP Interpreter is not configured(configure PHP Interpreter)解决办法
- IE浏览器下POST中文乱码解决办法 - PHP实现