Laravel 框架接收Ajax的GET请求很简单,但是有弯路。
不过 : 这个文章不是初学者看的,至少你们要会创建html界面,创建JS,引用JS库,实现$.Ajax代码,才行..............不过,我相信,应该都会。
首先,Laravel框架接收Ajax的Url都是在Routes里面的web.php里设定的,但是,Laravel 接收Url的入口文件就一个,那就是index.php.什么意思呢?接着往下看:
现在,我们就一步一步完成整个请求的过程:
图1-1
先打开Routes里的web.php,里面是系统自定义的一个接收Url请求的设定
Route::get('/', function(){
return view('welcome');
});
这个是什么意思呢?意思就是当index.php后面的是'/'的时候,执行后面函数里语句return view('welcome');也就是,当我们打开http://localhost/yu/public/index.php的时候,就会出现Welcome的界面.这个Welcome的界面就是return view('welcome')这句语句带来的效果.返回一个welcome 页面的视图.这些倒无所谓.主要的是我们要自己定义接收Url的语句.
我们来定义一个:
Route::get('login', function() {
echo "sss";
});
这个定义中:get就是接收以GET方式请求的Url; 'login'就是当index.php后面是login的时候所要执行的操作,即当http://localhost/yu/public/index.php/login 时,执行echo "sss";
接下来,我们要把Ajax给弄进去.先创建一个html界面,然后再创建一个JS文件,然后在html界面引入Jquery的JS,不然你就用不了Ajax.然后,引入你自己创建的JS文件,再然后,执行你自己创建的JS文件里面的函数,这里的函数是test();
图1-2
这便是test()函数
图1-3
应该都能看懂.这时候,你们运行你们创建的那个html试试.是不是出现了
图1-4
这个返回的数据就是你们:
Route::get('login', function() {
echo "sss"; //没错,就是这个
});
什么?你想传数据...那就要改一下了:
Route::get('login/{user}', function($user) {
echo $user;
});
test()函数肯定也要改:
function test() {
var c = "sadsadsad";
$.ajax({
type: "GET",
url: "public/index.php/login/" +c,
success: function (data) {
alert("牛逼!,是这样的! 返回的数据是 : " + data);
},
error: function () {
alert('错误!');
}
});
}
这里不要晕!!!..我们在后台定义接收的是login/{user}.意思参数就是login/后面的数
比如http://localhost/yu/public/index.php/login/哈哈 那这个参数就是"哈哈".
这里和普通的GET请求Url(http://localhost/yu/public/index.php/login?user="哈哈")不太一样,是属于一种Url的优化模式.可以试验一下,在浏览器输入http://localhost/yu/public/index.php/login/哈哈 页面出来的是"哈哈";一样的道理,Ajax的url:"public/index.php/login/" +c, 这个c就是参数,可以自己定义.现在运行创建的html页面,会出现什么?比如这里c我给定义为var c = "这样就对了";然后运行html页面.出现
图1-5
不用晕,自己试试就懂了.
其实还有第二种传递参数的方式:
Route::get('login', function() {
echo $_GET["user"];
}); //把login后面的{user} 去掉.这样就可以用
图1-6
看,可以了吧,只是这种Url不太美观,随便你们吧,想用哪种用哪种.还有,用第二种时,Ajax也有点变化,主要是加data这个属性:
图1-7
这样传递参数倒是方便点,看个人吧。