Ajax请求后台数据

一、前期准备
安装好XAMPP软件,并运行起来。本文代码是基于XAMPP开发环境,XAMPP是完全免费且易于安装的Apache发行版,其中包含MariaDB、PHP和Perl。XAMPP开放源码包的设置让安装和使用出奇容易。
二、前后台数据交互
前台部分
其中“process.php?name=Herry”,向后台传递name数据
document.getElementById("button").addEventListener("click",function () {
var xhr = new XMLHttpRequest();
xhr.open("GET","process.php?name=Herry",true);
xhr.onreadystatechange=function () {
if(xhr.readyState==4&&xhr.status==200) {
var data = xhr.responseText;
console.log(data)
}
};
xhr.send();
})
后台PHP部分
后台接收了name数值,并向前台返回了"GET: 你的名字是". $_GET['name']
<?php
if (isset($_GET['name'])) {
echo "GET: 你的名字是". $_GET['name'];
}
?>
于是最后前台console里面得到:GET: 你的名字是Herry
三、正常表单提交到PHP与Ajax方式提交
正常表单GET提交数据到PHP
前台部分
<form action="process.php" method="GET">
<input type="text" name="name">
<input type="submit" value="提交">
</form>
后台PHP部分
<?php
if (isset($_GET['name'])) {
echo "GET: 你的名字是". $_GET['name'];
}
?>
表单输入名字Bucky,然后点击提交后,浏览器将数据打包后,传递给后台,最后后台返回我们想要的数据----GET: 你的名字是Bucky。整个过程中页面有刷新,数据点击提交后,页面跳转到这个网址http://localhost/ajax/process...
Ajax请求后台数据GET
Ajax异步请求数据,无需刷新页面。可以提高用户体验,较少网络数据的传输量。click事件改成submit事件(表单应该用submit事件),然后取消默认事件。
前台部分
//Html部分
<form id="getForm">
<input type="text"name="name" id="name1">
<input type="submit"value="提交">
</form>
//Javascript部分
document.getElementById("getForm").addEventListener("submit",function(e){
e.preventDefault();//阻止默认跳转事件
var name=document.getElementById("name1").value;//获取输入的值
var xhr = new XMLHttpRequest();
xhr.open("GET","process.php?name="+name,true);
xhr.onreadystatechange=function () {
if ( xhr.status == 200&&xhr.readyState == 4) {
var data = xhr.responseText;
console.log(data);
}
}
xhr.send();
})
后台PHP部分
<?php
if (isset($_GET['name'])) {
echo "GET: 你的名字是". $_GET['name'];
}
?>
在表单输入Bucky,点击提交,最后在console显示:GET: 你的名字是Bucky。整个过程页面无刷新,有效提高页面性能。
正常表单POST提交数据到PHP
与GET提交数据差不多
前台部分
<form action="process.php" method="POST">
<input type="text" name="name">
<input type="submit" value="提交">
</form>
后台PHP部分
<?php
if (isset($_POST['name'])) {
echo "POST: 你的名字是". $_POST['name'];
}
?>
表单输入名字Bucky,然后点击提交后,浏览器将数据打包后,传递给后台,最后后台返回我们想要的数据----POST: 你的名字是Bucky。整个过程中页面有刷新,数据点击提交后,页面跳转到这个网址http://localhost/ajax/process...。与GET方式提交不同的是,POST方法数据并没有内嵌在url中,这样安全性比较高。
Ajax请求后台数据POST
POST请求与GET主要有两点不同:
①post请求一定要设置请求头的格式内容:
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
②post请求参数放在send里面,即请求体
xhr.send("name="+name" );
前台部分
//HTML部分
<form id="postForm">
<input type="text"name="name" id="name2">
<input type="submit"value="提交">
</form>
//Javascript部分
document.getElementById("postForm").addEventListener("submit", function (e) {
e.preventDefault();
var name=document.getElementById("name2").value;
var params = "name="+name;
var xhr = new XMLHttpRequest();
xhr.open("POST","process.php",true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.onreadystatechange=function () {
if(xhr.readyState==4&&xhr.status==200) {
var data = xhr.responseText;
console.log(data);
}
};
xhr.send(params);
})
后台PHP部分
<?php
if (isset($_POST['name'])) {
echo "POST: 你的名字是". $_POST['name'];
}
?>
表单输入名字Bucky,然后点击提交后,最后在console显示:POST: 你的名字是Bucky。整个过程页面无刷新。
四、总结
1.在不需要重新刷新页面的情况下,Ajax 通过异步请求加载后台数据,提高用户体验和页面性能。
2.GET参数通过URL传递,POST放在Request body中,后者安全性比较高。
来源:https://segmentfault.com/a/1190000017411394
Ajax请求后台数据的更多相关文章
- 前台返回json数据的常用方式+常用的AJAX请求后台数据方式
我个人开发常用的如下所示: 之所以像下面这样下,一是前台Ajax,二是为安卓提供接口数据 现在常用的是返回JSON数据,XML的时代一去不复返 JSON相对于XML要轻量级的多 对JSON不是十分熟悉 ...
- JS 操作 HTML 和 AJAX 请求后台数据
为某个元素插入值,添加属性,添加子元素 <div class="col-sm-6"> <select class="form-control" ...
- jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法
jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...
- ajax 请求后台数据返回异常 及 提示404方法名不存在
1.正常使用 Ajax 调取后台数据时,提示方法名不存在,Ajax前端正常,方法类bean注入正常,方法注解正常.但参数解析时出现异常. @RequestMapping(value="/ge ...
- 【Java框架型项目从入门到装逼】第六节 - 用ajax请求后台数据
这一节我们来说一下如何用ajax提交请求? 我们先不讲ajax的原理,还是先以实战为主,看一下这个东西到底怎么用的? form表单: <!-- 采用post表单提交 --> <for ...
- jQuery Ajax请求后台数据并在前台接收
1.ajax基本语法 <script> $(function(){ $('#sub').click(function(){ var username=$('#username').val( ...
- 用Ajax请求后台数据
我们先不讲ajax的原理,还是先以实战为主,看一下这个东西到底怎么用的? form表单: <%@ page language="java" contentType=" ...
- js页面用定时任务通过AJAX获取后台数据,但是从这个页面跳转到其他页面后,定时任务仍然在定时请求后台
setInterval(function(){//ajax 请求后台数据},1000);这个是A页面的定时器然后我在A页面通过其他请求跳转到其他页面之后后台发现A页面的定时器的那个请求仍然在执行为什么 ...
- C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求
C# 动态创建SQL数据库(二) 使用Entity Framework 创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...
随机推荐
- json 转xml
var jStr = JsonConvert.SerializeObject(new { root = new { li = list } }); var xml = JsonConvert.Dese ...
- AtCoder AGC002E Candy Piles (博弈论)
神仙题..表示自己智商不够想不到... 好几次读成最后拿的赢了,导致一直没看懂题解... 题目链接: https://atcoder.jp/contests/agc002/tasks/agc002_e ...
- js控制手机保持亮屏的库,解决h5移动端,自动息屏问题
一些说明:我用Laya(ts)开发小游戏,有需要保持手机屏幕常亮的需求(非必须的),然后作为小白的我就在网上找到了这个库,大概了解下,应该是通过播放空视频的原理来保持手机屏幕常亮,然后就放到项目中试了 ...
- CodeChef---- February Challenge 2018----Points Inside A Polygon
链接:https://www.codechef.com/FEB18/problems/POINPOLY Points Inside A Polygon Problem Code: POINPOLY Y ...
- 五大主流数字币钱包:imToken数字货币钱包,Bitcoin core钱包,BTS网页版钱包,AToken轻钱包,Blockchain
AToken数字货币钱包 超容易上手支持五大主流币种 互联网 | 编辑: 王静涛 2017-12-28 09:58:33转载 国家监管部门已叫停数字货币交易,包括火币网.比特币中国.OKC ...
- xsens melodic ros driver
sudo apt-get update sudo apt-get install ros-melodic-xsens-driver 设置数据输出: // 输出四元数,加速度.角速度.地磁 python ...
- 双三次插值C代码(利用opencv)
双三次插值C代码(利用opencv) phasecubic2.cpp D:\文件及下载相关\文档\Visual Studio 2010\Projects\phasecubic2\phasecubic2 ...
- JS中keyup, keypress, keydown以及oninput四个事件的区别
$email_input.onkeyup=function(event){ // console.log('event handle');//按方向键以及backspce esc有反应 长按字母键也没 ...
- 【pycharm】Mac版快捷键
首先是快捷键的设置,Mac中是在菜单栏的Pycharn/Preference/Keymap中 [快速调试] 1.看函数.方法最初在哪里创建的,这个方法很好用,查看内置函数之类的 按住command, ...
- 【奇技淫巧】linux 定时任务 crontab 反弹 shell
日期:2018-11-26 13:47:34 介绍:如何使用定时任务来反弹 shell? 0x01. 基本命令 参数 -e:编辑该用户的计时器设置: -l:列出该用户的计时器设置: -r:删除该用户的 ...