系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 网络编程 > AJAX相关 > 详细页面

Ajax提交post请求案例分析

时间:2020-02-03来源:系统城作者:电脑系统城

本文实例讲述了Ajax提交post请求。分享给大家供大家参考,具体如下:

前言:博主之前有篇文章是快速入门Ajax ,主要是利用Ajax做简单的get请求,今天给大家分享一篇利用Ajax提交post请求,以及使用post时需要注意的地方,还是以案例的方式告诉大家。

案例:

注册表单

文件结构图:

这里写图片描述

06-ajax-reg.html文件:

页面中主要有一个表单,使用了onsubmit事件,在onsubmit事件中首先获取准备post的内容,然后创建XMLHttpRequest对象,接着确定请求参数,然后重写回调函数,在函数中主要是根据请求的状态来使用服务器端返回值,然后发送请求,最后返回false,让表单无法提交,从而页面也不会跳转。


 
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <title>无刷新用户注册界面</title>
  7. <link rel="stylesheet" href="">
  8. </head>
  9. <script>
  10. //创建XMLHttpRequest对象
  11. function createXhr(){
  12. var xhr = null;
  13. if(window.XMLHttpRequest){
  14. xhr = new XMLHttpRequest();//谷歌、火狐等浏览器
  15. }else if(window.ActiveXObject){
  16. xhr = new ActiveXObject("Microsoft.XMLHTTP");//ie低版本
  17. }
  18. return xhr;
  19. }
  20. //注册方法
  21. function reg(){
  22. //1、获取准备Post内容
  23. var username = document.getElementsByName('username')[0].value;
  24. var email = document.getElementsByName('email')[0].value;
  25. //2、创建XMLHttpRequest对象
  26. var xhr = createXhr();
  27. //3、确定请求参数
  28. xhr.open('POST','./06-ajax-reg.php',true);
  29. xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  30. //4、重写回调函数
  31. xhr.onreadystatechange = function(){
  32. if(this.readyState == 4 && this.status == 200){
  33. //使用服务器端返回值
  34. var regres = document.getElementById('regres');
  35. regres.innerHTML = this.responseText;
  36. }
  37. }
  38. //5、发送请求
  39. var content = 'username='+username+'&email='+email;
  40. xhr.send(content);
  41. return false;//不跳转页面
  42. }
  43. </script>
  44. <body>
  45. <h1>无刷新用户注册界面</h1>
  46. <form onsubmit="return reg();">
  47. 用户名:<input type="text" name="username" /><br/>
  48. 邮箱:<input type="text" name="email" /><br/>
  49. <input type="submit" value="注册" />
  50. </form>
  51. <div id="regres"></div>
  52. </body>
  53. </html>
  54.  

06-ajax-reg.php文件:

代码比较简单,主要是判断内容是否为空,为空则返回“内容填写不完整”,不为空则打印提交的内容,返回“注册成功”。


 
  1. <?php
  2. /**
  3. * ajax注册程序
  4. * @author webbc
  5. */
  6. header('Content-type:text/html;charset=utf-8');
  7. if(trim($_POST['username']) == '' || trim($_POST['email']) == ''){
  8. echo '内容填写不完整';
  9. }else{
  10. print_r($_POST);
  11. echo '注册成功';
  12. }
  13. ?>
  14.  

效果图:

这里写图片描述

注意事项:

博主以前使用过Jquery的Ajax,使用$.post函数时不需要指定请求头的Content-Type内容为application/x-www-form-urlencoded,是因为jquery里面内置了,但是使用原生的Ajax,也就是XMLHttpRequest函数时必须加上。

XMLHttpRequest发送post请求时必须设置以下请求头:


 
  1. xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  2.  

更多关于ajax相关内容感兴趣的读者可查看本站专题:《jquery中Ajax用法总结》、《JavaScript中ajax操作技巧总结》、《PHP+ajax技巧与应用小结》及《asp.net ajax技巧总结专题》

希望本文所述对大家ajax程序设计有所帮助。

分享到:

相关信息

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载