注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿飘的博客

十里平湖霜满天 寸寸青丝愁华年

 
 
 

日志

 
 

ajax使用post传值  

2009-04-14 16:53:58|  分类: javascript |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
使用POST传值,在提交的时候执行页面怎么也接受不到传的值,用get却没有问题
最后发现问题出在setRequestHeader('Content-Type','utf-8');
必须设置成setRequestHeader('Content-Type','application/x-www-form-urlencoded');
这样才能接受到post的值,废话不多说,看下面例子:
<html>
<head>
<script language="javascript">
/*function createXMLHttpRequest(){
    //兼容不同浏览器
    if(window.ActiveXObject) //IE浏览器创建
       xmlObject = new ActiveXObject("Microsoft.XMLHTTP");
    else if(window.XMLHttpRequest) //其他浏览器方式创建
       xmlObject = new XMLHttpRequest();   
    return xmlObject;
}*/
function postRequest(strURL,string){
var xmlHttp;
if(window.XMLHttpRequest){ // For Mozilla, Safari, ...
var xmlHttp = new XMLHttpRequest();
}
else if(window.ActiveXObject){ // ForInternetExplorer
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//参数分别为 POST传值,目标地址,是否异步传输
xmlHttp.open('POST', strURL, true);
//POST必须使用该语句表示以表单的形式提交
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttp.onreadystatechange = function(){
/*获取状态信息 4表示完成请求 200表示处理成功
xmlHttp.readyState状态码
0:请求未初始化(还没有调用 open())。
·1:请求已经建立,但是还没有发送(还没有调用 send())。
·2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
·3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
·4:响应已完成;您可以获取并使用服务器的响应了。
xmlHttp.status,即为HTTP 状态代码
·400:服务器错误
·401:未经授权
·403:禁止
·404:没找到
200:一切正常
·301:永久移动
·302:找到(请求被重新定向到另外一个 URL/URI 上)
·305:使用代理(请求必须使用一个代理来访问所请求的资源)
 */
if (xmlHttp.readyState == 4 && xmlHttp.status == 200){
//responseText以文本返回(还有一种是responseXML以XML格式返回)
//decodeURI为中文反编码 该语句表示将返回的值填充到文本框中
updatepage(xmlHttp.responseText);
}
}
xmlHttp.send(string);
}

function updatepage(str){
if(str=="yes"){
alert("Welcome User");
}else{
alert("Invalid Login! Please try again!");
}
}

function call_login(){
var username = window.document.f1.username.value;
var password = window.document.f1.password.value;
var url = "login.php";
var string = "username=" + username + "&password=" +password;
//url编码,如escape(username),得不到值。
postRequest(url,string);
}
</script>
</head>

<body>
<Center>

<form name="f1" onSubmit="return call_login();">
<table border="0" bgcolor="#CCCCCC" cellspacing="1" cellpadding="3" width="316">
<tr>
<td align="left" colspan="2"><b><font size="5" color="#000080">Login</font></b></td>
</tr>
<tr>
<td align="right" width="124"><b><font color="#000080">User
Name:</font></b></td>
<td width="177"><input type="text" name="username" id="user" size="20" value="" /></td>
</tr>
<tr>
<td align="right" width="124"><b><font color="#000080">Password:</font></b></td>
<td width="177"><input type="password" name="password" size="20" value="" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="button" name="a1" value="Login" onClick="call_login()"></td>
</tr>
</table>
</form>

</center>
</body>
</html>

login.php
<?
$username=$_POST["username"];
$password=$_POST["password"];
if($username=="admin" && $password=="admin"){
echo "yes";
}else{
echo "No";
}
?>
  评论这张
 
阅读(420)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017