600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 原生php ajax post_使用原生ajax发送post请求完整案例

原生php ajax post_使用原生ajax发送post请求完整案例

时间:2022-10-30 22:06:16

相关推荐

原生php ajax post_使用原生ajax发送post请求完整案例

搜索热词

使用ajax发送数据实现前后台的交互,我想是web开发最基础的技能了。近来dz开发因为不兼容jquery,所以只能使用原生js发送数据,不想还遇到很多问题。在这里分析总结一下。先来一个使用ajax发送post表单数据的案例。

ajax发送post请求实例

姓名:

学校:

个人简介:

提交

function ajaxpost(){

var f = document.userinfo;

var uname = f.username.value;

var uschool = f.school.value;

var uinfo = f.selfinfo.value;

var xmlhttp

if (window.XMLHttpRequest){

// code for IE7+,Firefox,Chrome,Opera,Safari

xmlhttp=new XMLHttpRequest();

}else{

// code for IE6,IE5

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange=function(){

if (xmlhttp.readyState==4 && xmlhttp.status==200){

var obj = eval('('+xmlhttp.responseText+')');

alert('姓名:'+obj.uname+'学校:'+obj.uschool+'个人简介:'+obj.uinfo);

}

}

xmlhttp.open("post","index1.PHP",true);

/*

发送post请求时此句万万不能少

在Form元素的语法中,EncType表明提交数据的格式

用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型。

application/x-www-form-urlencoded:窗体数据被编码为名称/值对。这是标准的编码格式。

multipart/form-data:窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。

text/plain:窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符

*/

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

xmlhttp.send('uname='+uname+'&uschool='+uschool+'&uinfo='+uinfo);

}

index1.PHP

if(!empty($_POST)){

echo json_encode($_POST);

}

有几点要注意的

1:ajax不能跨域请求数据:当跨域时:如当前脚本域名为:localhost/index.PHP,请求的url为127.0.0.1,则发送请求失败,或者服务器能收到请求,但是xmlhttp.status=0,浏览器接受不到服务器返回的数据。

何为跨域?跨域如何发送请求数据,这篇博客有很好的解释。

/rainman/archive//02/20/1959325.html#m0

2:当用for循环发送请求时,因为for循环速度远大于一次请求完成的速度,所以ajax只能收到最后一次请求的数据。

3:有关json,PHP函数json_encode()和json_decode()都只能接受ut8格式编码的字符串,否者返回null。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。