我是laravel的新手我需要使用ajax发布数据我的问题是 如何在没有使用laravel 5中的ajax重新加载的情况下从textarea中的输入发布数据? 到目前为止,我的代码我不知道下一步该做什么:
路由
<?php
Route::group(['prefix' => 'api'], function() {
Route::group(['prefix' => 'v1'], function() {
Route::group(['prefix' => 'cars'], function() {
Route::get('', function () {
return App\Car::all();
});
Route::post('', function () {
return App\Car::create(Request::all());
});
Route::get('{id}', function ($id) {
return App\Car::find($id);
});
Route::post('{id}', function ($id) {
return App\Car::find($id)->update(Request::all());
});
});
});
});
Route::get('/ajax', function () {
return view('index');
});
查看
<html>
<head>
<title>
asdf
</title>
</head>
<body>
<input type="text" id="cars"/>
<input type="text" id="carowner"/>
<button class="create-car"> Create </button>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.get('/api/v1/cars').success(function(data) {
data.forEach(function(car) {
console.log(car);
$('body').append(car.name + "<br/>");
});
});
$('.create-car').click(function() {
var g = $("#cars").val();
var o = $("#carowner").val();
console.log(g);
console.log(o);
var data = {
"name": g,
"owner": o
})
}
$.post('/api/v1/cars/', data);
});
});
</script>
</body>
</html>
答案 0 :(得分:1)
在Laravel中使用AJAX发布数据很简单,但您必须记住,Laravel还需要在您的数据中传递csrf_token(),否则会发生错误。
注意:令牌通常由Laravel自动创建,但为此您应该使用HTML外观。如果你没有,你需要在表单中放置一个隐藏的字段,如下所示:
<input type="hidden" name="_token" value="{{ csrf_token() }}">
所以很难过,我只举一个如何做到这一点的例子:
$.ajax({
var g = $("#cars").val();
var o = $("#carowner").val();
var token = $("#_token").val();
var postData = {
_token: token,
name: g,
owner: o
}
url: "/api/v1/cars/'",
type: "POST",
dataType: "json",
data: postData,
}).done(function(response){
}
})
注意:这是Laravel的一个AJAX示例,但我没有检查您的路由是否正确,或者您的控制器和模型是否包含所需的功能。如果你有一切就绪,那就是这样!