Laravel 框架接收Ajax的GET请求很简单,但是有弯路。
不过 : 这个文章不是初学者看的,至少你们要会创建html界面,创建JS,引用JS库,实现$.Ajax代码,才行..............不过,我相信,应该都会。
- 首先,Laravel框架接收Ajax的Url都是在Routes里面的web.php里设定的,但是,Laravel 接收Url的入口文件就一个,那就是index.php.什么意思呢?接着往下看:
-
现在,我们就一步一步完成整个请求的过程:
- 先打开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();
这个返回的数据就是你们:
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页面.出现
不用晕,自己试试就懂了.
其实还有第二种传递参数的方式:
Route::get('login', function() {
echo $_GET["user"];
}); //把login后面的{user} 去掉.这样就可以用
http://localhost/yu/public/index.php/login?user="哈哈" 这种Url了,不信就试试
这样传递参数倒是方便点,看个人吧。