POST http://localhost:8000/offers-ajax/store 419 (未知状态) Laravel AJAX
Posted
技术标签:
【中文标题】POST http://localhost:8000/offers-ajax/store 419 (未知状态) Laravel AJAX【英文标题】:POST http://localhost:8000/offers-ajax/store 419 (unknown status) Laravel AJAX 【发布时间】: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...我的错。
【参考方案1】:
你需要在你的html页面中添加meta标签
<meta name="csrf-token" content=" csrf_token() ">
然后在js中 在开头添加这个
$.ajaxSetup(
data:
_token: $('meta[name="csrf-token"]').attr('content')
);
【讨论】:
以上是关于POST http://localhost:8000/offers-ajax/store 419 (未知状态) Laravel AJAX的主要内容,如果未能解决你的问题,请参考以下文章
小猪POST+乌鸦POST+js+商梦POST+小霖POST+骚华破解培训教程集合(资源共享吧首发)