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+骚华破解培训教程集合(资源共享吧首发)

web.com/post/post-title 重定向到 web.com/post-title

gin-post数据

易语言 如何提交post数据。

post传中文上限

php函数里面怎么获取post过来的值