【发布时间】:2021-06-11 15:06:56
【问题描述】:
我是 AJAX 初学者,尝试使用 AJAX 发布数据表单,但控制台中显示此错误:
POST http://localhost:8000/offers-ajax/store 419(未知状态)
我不知道为什么;我尝试了很多,但似乎没有任何效果。
我尝试在不使用 AJAX 查询的情况下发布数据,但效果很好。
这些是路线:
Route::group(['prefix'=>'offers-ajax'],function(){
Route::get('/create','AjaxController@create')-> name('ajax.offer.create');
Route::post('/store','AjaxController@store')-> name('ajax.offer.store');
});
控制器:
public function store(OffersRequest $request)
{
$file_name = $this->saveImage($request->photo, 'images/offers');
// Offer::create($request -> except(['_token']));
Offer::create([
'photo' => $file_name,
'name_ar' => $request->name_ar,
'name_en' => $request->name_en,
'details_ar' => $request->details_ar,
'details_en' => $request->details_en,
'price' => $request->price,
]);
}
刀片创建页面:
@extends('layouts.app')
@section('content')
<div class="container">
<form method="POST" class="needs-validation" novalidate action=""
enctype="multipart/form-data">
@csrf
<div class="form-group">
<label for="exampleInputEmail1">chose Photo</label>
<input type="file" class="form-control" name="photo">
@error('photo')
<small class="form-text text-danger">{{$message}}</small>
@enderror
</div>
<div class="form-group">
<label for="Name">{{__('messages.create_name')}}</label>
<input type="text" class="form-control" id="name" name="name_ar" placeholder="Enter name">
@error('name_ar')
<span class="text-danger">{{$message}}</span>
@enderror
</div>
<div class="form-group">
<label for="Name">{{__('messages.create_name_en')}}</label>
<input type="text" class="form-control" id="name" name="name_en" placeholder="Enter name">
@error('name_en')
<span class="text-danger">{{$message}}</span>
@enderror
</div>
<div class="form-group">
<label for="price">{{__('messages.create_price')}}</label>
<input type="text" class="form-control" id="price" name="price" placeholder="price here">
@error('price')
<span class="text-danger">{{$message}}</span>
@enderror
</div>
<div class="form-group">
<label for="details">{{__('messages.create_details')}}</label>
<input type="text" class="form-control" id="details" name="details_ar" placeholder="details here">
@error('details_ar')
<span class="text-danger">{{$message}}</span>
@enderror
</div>
<div class="form-group">
<label for="details">{{__('messages.create_details_en')}}</label>
<input type="text" class="form-control" id="details" name="details_en" placeholder="details here">
@error('details_en')
<span class="text-danger">{{$message}}</span>
@enderror
</div>
<button type="button" id="save_offer" class="btn btn-primary">create</button>
</form>
</div>
@stop
@section('script')
<script>
$(document).on('click', '#save_offer', function(){
$.ajax({
type: 'post',
url: "{{Route('ajax.offer.store')}}",
data: {},
success: function (data){
}, error: function (reject){
}
});
});
</script>
@stop
请你帮帮我
【问题讨论】:
-
你需要在header中添加ajax设置发送token,这是正确的方法,其他方法是通过ajax调用发送token,你的问题是VerifyCsrfToken
-
那行是 419 还是 http 状态码 419?
-
这是 419 代码 @ProfessorAbronsius
-
你怎么解释
-
好的 - 我以为代码是
"I'm a teapot"但那是 418...我的错。
标签: php ajax laravel forms request