区块链技术博客
www.b2bchain.cn

在Laravel 5中发送Ajax请求 – php程序员分享

本文介绍了在Laravel 5中发送Ajax请求 – php程序员分享,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

url = '{{route("ajaxSendmsg")}}';             console.log(url);             $.ajax({                 url: url,                 data : {comment_id:comment_id},                 type: "POST",                 dataType: "json",                 success : function(response){                     alert(response);                 },                 error : function(res){ console.log(res);                 }              }); 

路线:

Route::post('/ajaxSend', ['as'=> 'ajaxSendmsg', 'uses'=>'[email protected]']); 

控制器:

public  function ajaxSend(){          if( Request::ajax() ){          return Response::json(['success' => 1]);         }      } 

错误:VerifyCsrfToken.php 53行中的TokenMismatchException:

我正在尝试发送ajax请求,但是它不起作用。 :/

参考方案

Laravel默认情况下在非读取HTTP请求(例如POST,PUT或PATCH)上具有中间件,以防止Cross Site Request Forgery。在每个响应上,都会生成一个令牌,然后预期随后的请求将与该令牌一起发送。如果令牌匹配,则一切正常,如果不匹配(或者请求完全不提供令牌),则可能是CSRF攻击。

有几种解决方法:

通过在app/Http/Kernel.php中将其注释掉来完全禁用中间件-显然不是最好的主意。
通过使用自己的默认中间件覆盖默认的中间件,仅在确定不需要它的路由上禁用它:

<?php namespace AppHttpMiddleware;  use Closure; use IlluminateFoundationHttpMiddlewareVerifyCsrfToken as BaseVerifier; use IlluminateSupportStr;  class VerifyCsrfToken extends BaseVerifier {     /**      * Handle an incoming request.      *      * @param  IlluminateHttpRequest $request      * @param  Closure                 $next      *      * @return mixed      */     public function handle($request, Closure $next)     {         if (Str::startsWith($request->getRequestUri(), 'some/open/route') {             return $next($request);         }          return parent::handle($request, $next);     } } 

只需在每个请求中将其发送,要么在请求正文中以_token的形式发送,要么在请求字符串中以_token的形式发送,或者以HTTP头名为X-CSRF-TOKEN的形式发送。您可以使用辅助函数csrf_token()来获得它:

.ajax({    url: url,    data : {comment_id:comment_id, "_token":"{{ csrf_token() }}"},    type: "POST",    dataType: "json",    .... }); 

我正在使用laravel5。在模型中,我有一个静态函数,该函数在控制器中调用。它工作正常,但是我想在此函数中使用另一个非静态函数进行相同的更改,当我在静态函数中调用它时会产生错误。Non-static method AppModelsCourse::_check_existing_course() should not be called statica…

我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…

我有以下片段。 var myData = { video: $("input[name='video[]']:checked").serialize(), sinopse: $("#sinopse").val(), dia: $("#dia").val(), quem: $(&#…

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00&#0…

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 在Laravel 5中发送Ajax请求 – php程序员分享
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们