Итак, я провел некоторое тестирование в отношении кода состояния HTTP 307 .
Позвольте мне сначала описать мои настройки теста, я создал следующие маршруты:
Route::get("/help", 'HelpController@index');
Route::post("/post", 'HelpController@post');
Route::post("/redirected", 'HelpController@redirected');
HelpController
содержит следующий код:
<?php
namespace App\Http\Controllers;
class HelpController extends Controller
{
public function index(){
return view('help');
}
public function post(){
return redirect('/redirected', 307);
}
public function redirected(){
echo "Success";
}
}
и help.blade.php
были очень простой формой, а именно:
<form method="post" action="/post">
@csrf
<button>Go</button>
</form>
Я рад сообщить, что код возврата 307 успешно сохраняет метод POST.
т.е. когда я зашел на URL /help
и нажал кнопку «Перейти», я увидел сообщение «Успех», как и ожидалось.
Что это значит для меня, спросите вы?
Ну, мы можем решить ваши проблемы с очень простым изменением:
return redirect($newURL);
становится
return redirect($newURL, 307);
Разве это не было легко в конце?
Кроме того, как вы можете видеть в моей тестовой настройке, это также сохраняет защиту crsf, что является определенным плюсом с точки зрения безопасности.