使用Laravel作为API存储数据,并带有ajax功能
Store data with Laravel as API with ajax function
我在index.blade:上有这个代码
@extends('layouts.app')
@section('content')
<div class="container">
<div class="col-sm-offset-2 col-sm-8">
<div class="panel panel-default">
<div class="panel-heading">
New Task
</div>
<div class="panel-body">
<!-- Display Validation Errors -->
@include('common.errors')
<!-- New Task Form -->
<form action="/task" method="POST" class="form-horizontal">
{{ csrf_field() }}
<!-- Task Name -->
<div class="form-group">
<label for="task-name" class="col-sm-3 control-label">Task</label>
<div class="col-sm-6">
<input type="text" name="name" id="task-name" class="form-control" value="{{ old('task') }}">
</div>
</div>
<!-- Add Task Button -->
<div class="form-group">
<div class="col-sm-offset-3 col-sm-6">
<button type="submit" class="btn btn-default">
<i class="fa fa-btn fa-plus"></i>Add Task
</button>
</div>
</div>
</form>
</div>
</div>
<!-- Current Tasks -->
@if (count($tasks) > 0)
<div class="panel panel-default">
<div class="panel-heading">
Current Tasks
</div>
<div class="panel-body">
<table class="table table-striped task-table">
<thead>
<th>Task</th>
<th> </th>
</thead>
<tbody>
@foreach ($tasks as $task)
<tr>
<td class="table-text"><div>{{ $task->name }}</div></td>
<!-- Task Delete Button -->
<td class="text-right">
<form action="/task/{{ $task->id }}" method="POST">
{{ csrf_field() }}
{{ method_field('DELETE') }}
<button type="submit" id="delete-task-{{ $task->id }}" class="btn btn-danger">
<i class="fa fa-btn fa-trash"></i>Delete
</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endif
</div>
</div>
这很好。。。现在-只是为了好玩,我尝试用jquery ajax存储数据,所以我写了函数dodaj():
function dodaj(){
var name = 'JASAMBRE';
$.ajax({
url: "/store",
type: "POST",
async: true,
data: {
name: name
},
dataType: "html",
success: function (data) {
console.log(data);
},
error: function (data) {
console.log(data);
console.log('GRESKA NEKA');
}
});
}
现在,当我从浏览器运行函数时,我得到了500 Internal Server error
。
我现在必须发送身份验证数据,但如何使用jquery ajax存储数据?
更新:我尝试:
$.ajaxPrefilter(function(options, originalOptions, xhr) {
var token = $('meta[name="csrf_token"]').attr('content');
if (token) {
return xhr.setRequestHeader('X-XSRF-TOKEN', token);
}
});
function dodaj(){
var name = 'JASAMBRE';
$.ajax({
url: "/store",
beforeSend: function (xhr) {
var token = $('meta[name="csrf_token"]').attr('content');
if (token) {
return xhr.setRequestHeader('X-XSRF-TOKEN', token);
}
},
type: "POST",
async: true,
data: {
name: name
},
dataType: 'json',
success: function (data) {
console.log(data);
},
error: function (data) {
console.log(data);
console.log('GRESKA NEKA');
}
});
}
使用csrf_field()时,它会创建一个名为"_token"的隐藏字段。您可以使用浏览器上的"查看源代码"功能进行验证。无论如何,您可以做的是获取该字段的值,并在执行HTTP请求时将其附加到数据中。
// knowing that this field exists
var token = document.getElementsByName('_token')[0].value;
$.ajax({
url: '/task',
type: 'POST',
data: {
name: name,
_token: token
},
...
});
相关文章:
- 一个Ajax函数能产生另一个Ajax功能吗
- 当有人点击浏览器关闭按钮时,使用JavaScript或ajax功能
- jQuery重新使用了ajax功能
- 我们可以在多个 id 上调用单个 ajax 功能吗?
- 数据库操作后,Ajax 功能不起作用
- 如何在加载前执行ajax功能
- 重塑ajax功能
- 使用Laravel作为API存储数据,并带有ajax功能
- 将检查是否执行ajax功能的脚本
- Mobile Safari在iOS 5中禁用ajax功能
- 我可以使用提交按钮来激活AJAX功能吗
- 使用Spring/DWR反向Ajax功能来显示对表数据的动态更改
- Ajax功能的按钮按下
- JQuery删除表行后的Ajax功能
- 扩展jquery的ajax功能
- 谷歌分析仪表板AJAX功能没有得到值
- 错误在谷歌分析AJAX功能上的JSON响应
- Grails ajax功能——一个“恼人的bug”
- 包括成功/失败jQuery / Ajax功能
- 更新数据库与javascript AJAX功能通过按钮