php处理ajax请求jQuery,使用Jquery发出Ajax请求和PHP处理Ajax请求

本文详细介绍了使用Jquery进行Ajax提交的三种常见方法:$.get(), $.post和$.ajax()。通过实例展示了如何在前端发送请求、后台接收处理以及前端接收响应数据的过程。特别提到了$.ajax()的灵活性以及POST方式在PHPStorm内置浏览器中的问题和解决办法。
摘要由CSDN通过智能技术生成

哀差闷在搞一个管理系统,leader给了一套前端模板,需要自己去修改适应业务需要,并且实现相应的功能,其中在Ajax提交时遇到了困难,虽然请教了团队里的前端大神,但是还是一知半解。于是好好学习了下Jquery的Ajax提交的方法,这里总结下。

Jquery提供的Ajax方法常见的有:$.get() ,$.post, $.ajax()。这里哀差闷就这三种方法给出一些简单的例子,和在实际使用的过程中遇到的一些问题。其实主要三个问题没弄清楚:1.如何提交Ajax请求、2.后台如何处理Ajax提交的数据并返回一些数据、 3.Js如何处理Ajax返回的数据。

$.get()

弄一个简单的表单提交作为示例

$.get()函数有四个参数,可以参考http://jquery.cuishifeng.cn/jQuery.get.html

前端页面ajax_get.html

ajax_get demo

表单

用户名:

密&nbsp&nbsp&nbsp码:

$("#submit1").click(function(){

$.get('ajax_get_action.php',{'username':$('#username').val(),'pwd':$('#pwd').val()}, function(data){

alert(data);

});

});

可以看到在点击事件函数里直接调用$.get()函数,一个参数指定了处理Ajax请求的地址,第二个参数为提交给服务器的数据,第三个参数为回调函数(即用来处理Ajax返回的数据)

后台处理程序ajax_get_action.php<?php

$username = $_GET['username'];

$pwd = $_GET['pwd'];

echo '用户名: '.$username.'\n'.'密码 '.$pwd;

可以看到,很简单的echo出来的是内容会被Ajax返回给js来处理,在$.get()的第三个参数-回调函数中有个参数data,则后台处理程序echo出来的数据会交给data。如下:

55a0d9c986fbe973174cafe2457db1cb.png

$.ajax()

$.post()方法和$.get()方法使用的情况及其相似,只是在后台处理的时候,需要需要使用$_POST取得Ajax提交过来的数据。所以就不在介绍$.post()方法了。

$.ajax()是最强大的方法,既可以实现post提交数据也可以实现get提交数据。还有需要的强大的功能可以参考http://jquery.cuishifeng.cn/jQuery.Ajax.html

ajax.html

ajax_get demo

表单

用户名:

密&nbsp&nbsp&nbsp码:

$("#submit1").click(function(){

/* console.log("点击事件生效!");

$.get('ajax_get_action.php',{'username':$('#username').val(),'pwd':$('#pwd').val()}, function(data){

alert(data);

});*/

//首先定义一个数组

data = {};

data.username = $('#username').val();

data.pwd = $('#pwd').val();

console.log(data);

$.ajax({

url: 'respond.php', //指定处理后台处理程序的路径

type: 'post', //提交方式

contentType: 'application/x-www-form-urlencoded',

dataType: 'json', //指定服务器返回的数据格式

data: data, //提交给服务器的数据

success: function(data){ //成功时的回调函数

console.log(data);

if(data.flag == 0) {

alert(data.msg);

}else{

alert("出现未知错误,稍后再试!");

}

},

error: function(){ //请求失败时执行

alert('网络错误,稍后再试!');

}

});

});

后台处理respond.php<?php

$user = $_POST['username'];

$pwd = $_POST['pwd'];

/*********此处检查用户名密码是否正确,假设是成功的*********/

$msg = 'Welcome '.$user;

$respond = array(

'flag' => 0,

'msg' => $msg,

'data' => true,

);

echo json_encode($respond); //$.ajax已经指定了服务器返回的数据为json格式

?>

8f3f24cce0981489d5765c6848a262cd.png

记录一个问题,由于使用PHPStorm内置的浏览器,来测试程序,发现使用POST方式后台怎么也取不到数据,使用GET的方式就没有问题,搞了好长的时间,终于找到了原因,原来是PHPstorm内置的浏览器是FastCGI模拟出来的,没有$_POST。详细情况可以看看https://segmentfault.com/q/1010000005734863

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值