问题描述:Ajax传值状态是200正确的,但就是获取不到success后的返回值data,最后发现只有alert()一下才可以正确获取值。
解决方法:把Ajax里面的async设置为false问题解决
分析原因:当async设置为true时,是异步传输,即一js一边传向Server,一边紧接着就执行下面的返回值,那如果Server那边还没有处理好,这边就当然不会有输出值了,加上alert后会有是因为Server那边已处理好,设置成false就是让它执行完成后再执行html端的。
//-----------------------------------前台页面--------------------------------------------------
<head>
<title></title>
<script type="text/javascript" src="./js/jquery.js"></script>
<script>
function fun(){
var username = $("input[name=username]").val();
$.ajax({
type: "GET",
async: false,//默认是true
url: "php.php",
data: { username:username, Name: "Jquery" },
success:function(data, st){
alert(data);
}
})// alert(username); 如果async设置为true,在这个地方必须要alert一下才可以获取success里的data值
}
</script>
</head>
<body>
<div align="center">
<form action="" name="frm">
联系人:<input type="text" name="username" value="" /><br>
电 话: <input type="text" name="phone" id="idPhone" /><br>
<button onclick="fun();">提交</button><br>
<div><span id="number">350</span>人报名</div>
</form>
</div>
</body>
</html>
//-------------------------------------------服务器页面---------------------------------------------------
<?php
include 'conn.php';
if(!empty($_GET['id']))
{
echo $_GET['username'];
}
二当家的官网,请访问 http://www.erdangjiade.com
更多商城企业源码,尽在 http://www.erdangjiade.com/source
更多原创模板,尽在 http://www.erdangjiade.com/templates
网页特效下载:www.erdangjiade.com/js
PHP/Mysql:www.erdangjiade.com/php
PHP网站开发求职QQ群 368848856