我正在使用 laravel 9 开发一个项目。 我在 axios 中的请求出现问题,收到以下错误:
405 方法不允许
我已经在我的项目中应用了以下命令:
php artisan cache:clear
php artisan route:clear
php artisan config:clear
npm run build
但是错误仍然存在。
此问题仅出现在一个特定请求中,即添加记录请求。
js文件
var fileInput = document.getElementById('formFile');
var file = fileInput.files[0];
const formData = new FormData();
// Agregar el archivo al FormData
formData.append('imageFile', file, file.name);
formData.append('nombre', nombre);
formData.append('url', url);
formData.append('fechaPublicacion', fechaPublicacion);
formData.append('horaPublicacion', horaPublicacion);
formData.append('tiempoLectura', tiempoLectura);
formData.append('textoResumen', textoResumen);
formData.append('temaId', temaId);
formData.append('activoPost', activoPost);
formData.append('detalleDataPost', JSON.stringify(detalleDataPost));
formData.append('postRelacionados', JSON.stringify(arrayPostIds));
axios.post(baseUrl+"/registrar-articulo", formData, {
headers: {
'X-CSRF-TOKEN': window.CSRF_TOKEN,
'Content-Type': 'multipart/form-data'
}
})
.then(function(response) {
控制器
public function regitrarArticulo(Request $request){
$msg = "";
$exito = 0;
$nombre = $request->get("nombre");
$url = $request->get("url");
$fechaPUblicacion = $request->get("fechaPublicacion");
$horaPublicación = $request->get("horaPublicacion");
$tiempoLectura = $request->get("tiempoLectura");
$textoResumen = $request->get("textoResumen");
$temaId = $request->get("temaId");
$activoPost = $request->get("activoPost");
$detallePost = $request->get('detalleDataPost');
$postRelacionados = json_decode($request->get('postRelacionados'), true);
$usuarioAgrego = Auth::user()->id;
$fechaFinal = $fechaPUblicacion." ".$horaPublicación.":00";
$imageName = '';
$path = '';
$imageName = time().'.'.$request->imageFile->extension();
$path = $request->file('imageFile')->storeAs('images', $imageName, 'public');
$articulosEncontrado = DB::table('posts')
->join('temas', 'temas.id', 'posts.tema_id')
->where('posts.urlpost', $url)
->where('temas.id', $temaId)
->get();
if(count($articulosEncontrado) > 0){
Web.php
Route::post('/registrar-articulo', [PostController::class, 'regitrarArticulo'])->middleware('auth')->name('registrar-articulo');
Route::post('/modificar-articulo', [PostController::class, 'updatePost'])->middleware('auth')->name('modificar-articulo');
路线列表
我认为问题在于我如何在 axios 中发出请求,因为我必须指出我有另一个请求可以使用 post 方法进行修改,但这个响应正确。
我需要知道我有什么错误,或者我在应用到我的项目时缺少考虑因素,以使其正常工作。
回答我的问题时,我发现导致此错误的原因是我在表单数据中发送的数据之一,特别是名称,该名称是用2个括号注册的,(示例),单独它们没有引起任何问题,但是当在同一个句子中发生了错误,所以我应用了encodeURIComponent来发送该信息,并应用了urldecode来接收它,从而解决了这个问题。 恐怕我不知道这个失败的原因,我假设 formData 应该被编码为文本并且没有这个问题。 我希望它对其他人有帮助。