2016-08-19 104 views
-1

我想delete记录mysqllaravel申请。但它显示TokenMismatchException错误。我无法找到为什么抛出错误。这将是巨大的,如果任何人都可以帮忙..阿贾克斯删除不工作laravel 5.2

这里的视图代码:(我没有一种形式)

<a href="{{url('/page/'.$Ids->id)}}" class="remove-entry"> 
    <button type="button" class="close" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
</a> 

而这里的jQuery的AJAX调用

$(document).on('click', '.remove-entry', function(e){ 
    e.preventDefault(); 

    $.ajax({ 
     url: this.href, 
     type: 'DELETE', 
     data: { 
      "_token": "{{ csrf_token() }}" 
     }, 
     success: function(res) { 
      console.log('removed'); 
     } 
    }); 
}); 

UPDATE

我累了以下代码,但它不起作用,可能是因为它需要价值token,我想这是从窗体中获取的。但正如我上面已经提到的,我没有表单设置。那么在那种情况下,我怎么能把token的价值?

headers: {'X-CSRF-TOKEN': token} 

我明白我所面临的问题不是新的或唯一的,但它肯定是从它理应考虑重复的问题不同。此外,该代码能正常工作较早,但在新项目的创建问题

+0

OR

$.ajax({ url: "<?php echo url("yourrequest"); ?>", type: "POST", headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data:'column='+column+&id='+id, success: function(data){ console.log(msg); } }); 

工作你有没有采取任何的HTML标记字段,它在数据传递? –

+0

[laravel 5.2 valid ajax request]可能重复(http://stackoverflow.com/questions/34572347/laravel-5-2-valid-ajax-request) – vitr

+0

@SandipPatel不,我应该怎么做?另外,在我的旧项目中,完全相同的情况下,它运行良好。 – NewBee

回答

1

也许你需要在你的CMD生成应用程序键,类型:

php artisan key:generate 

然后写以下行(与生成的密钥)到.ENV文件

APP_KEY=your_key 

如果不工作,你可以在你看来JS变量创建:

var token = '{{Session::token()}}'; 

然后而是采用头试:

$.ajax({ 
      method:"post", 
      url:yoururl, 
      data:{ 
      _token:token, 
      } 
}).done(function(msg) { 

}); 

第三个选项是事情错了,而你的用户登录到您的应用程序。然后你需要显示来自控制器的登录代码。

希望这将有助于:)

+0

'var token ='{{Session :: token()}}';'被保存为字符串,我怎样才能得到它的值? – NewBee

+0

你的意思是如何在你的js文件中获得这个var的值?你需要把这个变量放在你的代码的末尾,然后在你的ajax函数中传递数据'_token:token'。这是你可以在你的js文件中使用的正常变量。例如,您可以通过在js文件中写入console.log(令牌)并查看浏览器控制台来查看它。 –

2

如果你想发送Ajax请求没有CSRF令牌laravel。
转到:应用程序/ HTTP /中间件/ VerifyCsrfToken.php

protected $except = [ 
    'request/send_ajax', /// Enter your route post link here 
    'request/send_ajax1' 
]; 

现在,你可以发布不令牌

OR

简单的插入Ajax请求的页面,你会做一个META标记Ajax请求和默认中间件将检查csrf_token。在Laravel5.2

+0

是不是像禁用CSRF?如果我错了,请原谅我。 – NewBee

+0

是的,这是针对特定路线禁用CSRF的解决方案 –