老师 您好 get请求显示参数错误 post请求是正常的 这个是什么原因呢
来源:2-8 js脚本
小虾虾小
2019-08-09 15:55:01
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Register</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div class="register">
<p class="title">
<span>登 录</span>
<span class="current">注 册</span>
</p>
<div class="form">
<div>
<span>+86</span>
<input type="text" name="user" id="user" placeholder="请输入注册手机号" autocomplete="off" />
<i id="user_icon"></i>
<p class="info" id="user_info"></p>
</div>
<div>
<input type="password" name="pwd" id="pwd" placeholder="请设置密码" />
<i></i>
<p class="info"></p>
</div>
<p class="button">
<a href="javascript:void(0)" class="btn" id="sigup-btn">注册</a>
</p>
</div>
</div>
<script type="text/javascript">
var $ = {
ajax : function(options){
var xhr = null, // XMLHttpRequest对象
url = options.url, // url地址
method = options.method || 'get', // 传输方式。默认为GET
async = typeof(options.async) === "undefined" ? true : options.async, // 同步与异步
data = options.data || null,
params = '', // 参数
callback = options.success, // ajax请求成功的回调函数
error = options.error; // ajax请求失败的回调函数
// 将data的对象字面量的相识转换为字符串形式
if (data) {
for(var i in data){
params += i + '=' + data[i] + '&';
}
params = params.replace(/&$/,'');
}
// 根据method的值改变url
if (method === "get") {
url += '?' +params;
}
if (typeof XMLHttpRequest != "undefined") {
xhr = new XMLHttpRequest();
}else if (typeof ActiveXObject != "undefined") {
// 将所有可能出现的ActiveXObject版本放在一个数组中
var xhrArr = ['Microsoft.XMLHTTP','MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP.2.0'];
// 遍历创建XMLHttpRequest对象
var len = xhrArr.length;
for (var i = 0; i < len; i++) {
try{
// 创建XMLHttpRequest对象
xhr = new ActiveXObject(xhrArr[i]);
break;
}
catch(ex){
}
}
}else{
throw new Error('No XHR object availabel.');
}
xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
if((xhr.status >=200 && xhr.status <300) || xhr.status === 304){
callback && callback(JSON.parse(xhr.responseText))
}else{
error && error();
}
}
}
// 创建发送请求
xhr.open(method,url,async);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send(params);
}
}
</script>
<script type="text/javascript">
var user = document.getElementById("user"),
pwd = document.getElementById("pwd"),
sigup = document.getElementById("sigup-btn"),
userInfo = document.getElementById("user_info"),
userIcon = document.getElementById("user_icon"),
userReg = /^1[3578]\d{9}$/;
// 检测用户
function checkUser(){
var userVal = user.value;
if (!userReg.test(userVal)) {
userInfo.innerHTML = '手机号无效!';
userIcon.className = 'no';
}else{
userInfo.innerHTML = '';
userIcon.className = '';
// 发起请求
$.ajax({
url : 'http://localhost/demo/register/server/isUserRepeat.php',
type : 'get',
data : {username:userVal},
success : function(data){
console.log(data);
userIcon.className = 'ok';
}
})
}
}
// 绑定事件,检测用户的有效性及是否注册过
user.addEventListener("blur",checkUser,false);
</script>
</body>
</html>


1回答
你好同学,老师测试,使用get是可以请求成功的,如下

输出的data是后台返回的数据,所以输出参数有误是请求后台的php接口的问题。这个不用管哦,在实际开发中,此类问题和后台小伙伴沟通解决即可。另外,同学的代码中有一个参数和课程中写的不一样,如下修改:

祝学习愉快,望采纳。
相似问题