如何使用 ajax 解决 Laravel Post Error 403?
Posted
技术标签:
【中文标题】如何使用 ajax 解决 Laravel Post Error 403?【英文标题】:How to solve Laravel Post Error 403 with ajax? 【发布时间】:2022-01-17 18:17:16 【问题描述】:我想在使用服务器端模式的数据库表中插入一些记录。我使用的是 laravel 8,php 版本 8.0.13,数据库 mysql。
这是我的路线
use App\Http\Controllers\JabatanController;
Route::resource('jabatan', JabatanController::class, [
'names' => [
'index' => 'jabatan.list',
'store' => 'jabatan.store',
]]);
//dd($request->all());
我的看法
<button type="button" id="tambah-jabatan" class="btn btn-primary float-right" data-toggle="modal" data-target="#modal_tambah">
Tambah Jabatan
</button>
<!-- Modal -->
<div class="modal fade" id="modal_tambah" tabindex="-1" role="dialog" aria-labelledby="modalTambahLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalTambahLabel">Tambah Data Jabatan</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<!-- mb -->
<div class=" mb-3">
<label for="jabatan">Jabatan</label>
<input type="text" name="jabatan" class="form-control" id="jabatan" placeholder="Masukkan Jabatan disini" value="" required>
</div>
<!-- /mb -->
</div>
<div class="modal-footer">
<button type="button" id="close" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" id="save-jabatan" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
我的控制器
public function store(StoreJabatanRequest $request)
$data = Jabatan::updateOrCreate([
'jabatan' => $request->jabatan,
]);
return response()->json($data);
我的模特
class Jabatan extends Model
use HasFactory;
protected $table = "jabatans";
protected $fillable = [
'jabatan'
];
我的主视图中有一些 ajax 脚本
<script>
$('#save-jabatan').on('click', function()
$.ajax(
url: "route('jabatan.store')",
type: "post",
data:
jabatan: $('#jabatan').val(),
"_token": "csrf_token()"
,
success: function(res)
console.log(res.data);
alert(res.text)
$('#close').click()
$('#tb_jabatan').DataTable().ajax.reload()
,
error: function(xhr)
alert(xhr.responseJSON.text)
)
)
</script>
当我检查检查时我得到了这个错误
POST http://localhost:8000/jabatan 403(禁止)
有什么建议吗?
【问题讨论】:
【参考方案1】:好的,所以在我的情况下,问题出在我的 App\Http\Request\StoreJabatanRequest.php
class StoreJabatanRequest extends FormRequest;
public function authorize()
return true;
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
return [
'jabatan' => 'required'
];
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。 403 是路由相关问题。您如何通过自定义请求解决它。以前的 CustomRequest 怎么样。你做了什么改变?以上是关于如何使用 ajax 解决 Laravel Post Error 403?的主要内容,如果未能解决你的问题,请参考以下文章
POST 500(内部服务器错误) - Ajax 和 laravel 4
PHP Laravel 4.2 ajax post返回null或空
仅在 HTTPS 中执行 ajax POST 请求时,Laravel 403 错误(生产)
Jquery:使用 laravel 的跨域 ajax 'POST'