laravel5.1 ajax post 传值_token示例

本文主要介绍在Laravel 5.1中使用ajax post传值_token的示例,包括了如何设置CSRF保护以及如何发送ajax请求并接收响应。以下是详细内容。

1. 什么是CSRF保护

CSRF(Cross-Site Request Forgery),中文名称为跨站请求伪造,是一种恶意攻击方式。攻击者通过铅笔制造一个跨站请求,然后欺骗用户来访问该请求,即可在用户的成功授权下进行非法操作。

为了保护应用程序免受此类攻击,Laravel提供了CSRF保护。在表单中包含CSRF令牌可确保该表单只能由我们的应用程序提交。

2. 如何设置CSRF保护

在Laravel中,我们可以通过在表单中包含CSRF令牌或将其作为HTTP头传递来实现对表单的保护。当前应用程序的所有 POST、PUT 和 DELETE 请求都必须包含在 Laravel 应用程序中生成的 CSRF 令牌。

在Laravel 5.1中,我们可以通过在表单中添加{{ csrf_field() }}或在请求头中添加X-CSRF-Token字段来设置CSRF保护。

<form action="{{ route('form.submit') }}" method="POST">

{{ csrf_field() }}

<!-- 表单内容 -->

</form>

或者

$.ajaxSetup({

headers: {

'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')

}

});

3. 如何使用ajax post传值_token

在Laravel中,我们可以使用jQuery中的ajax方法发送ajax请求。下面是ajax post传值_token的示例:

$.ajax({

url: '/sendData',

type: 'POST',

data: {

'name': 'John',

'_token': $('meta[name="csrf-token"]').attr('content')

},

success: function(response) {

console.log(response);

},

error: function(response) {

console.log(response);

}

});

在上述示例中,我们向/sendData发送一个POST请求,发送了一个名为"name"和"_token"的数据。令牌可以通过获取页面的meta标记中获取。

在服务器端,我们可以通过以下代码获取ajax请求中发送的数据:

$name = $_POST['name'];

注意事项:当使用Laravel自带的CSRf验证的时候,需要发送数据时,必须加入一个_token字段,这个字段的值需要从页面中获取"csrf-token"meta属性的content值。如果发送数据没有这个_token字段,将无法通过确认验证,从而报422异常。

4. 总结

这篇文章介绍了在Laravel 5.1中使用ajax post传值_token的示例,包括如何设置CSRF保护以及如何发送ajax请求并接收响应。希望本文能够帮助大家在开发过程中顺利使用这些技术。

后端开发标签