Laravel: почтовый запрос продолжает получать 302 - PullRequest
0 голосов
/ 06 апреля 2020

Я делаю сообщение, которое, кажется, успешно достигает контроллера, но браузер продолжает отображать 302 ответа. Я регистрирую запрос с помощью dd() и получаю текст для соответствующего входа. Я не знаю, почему я получаю 302, хотя. Я разместил свой код ниже и хотел бы узнать, что я делаю неправильно. Спасибо!

Blade

<form class="form" role="form" method="POST" action="{{ url('/admin/store/custom-text/update') }}">
    <div class="form-group @hasError('custom_text')">
        <textarea name="custom_text" value="{{ old('custom_text') }}">
        </textarea>
        @error('custom_text')
    </div>
    <button class="btn btn-success" type="submit">Update Custom Text</button>
</form>

Контроллер

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Http\Requests\Admin\CustomTextFormRequest;

class CustomTextController extends Controller
{
    public function index()
    {
        return view('admin.store.custom-text');
    }

    public function update(CustomTextFormRequest $request)
    {
        $customText = $request->input('custom_text');
        dd($customText);
        flash('Custom Text Updated!');
        return redirect()->back();
    }
}

CustomTextForRequest

class CustomTextFormRequest extends FormRequest
{

    public function authorize()
    {
        return true;
    }


    public function rules()
    {
        return [
            'custom_text' => 'required|string',
        ];
    }
}

** Маршруты **

Route::post('admin/store/custom-text/update', 'Admin\CustomTextController@update');

Ответы [ 3 ]

0 голосов
/ 06 апреля 2020

Я согласен, @keizah является верным.

=> Код состояния ответа HTTP 302 Найдено является распространенным способом выполнения перенаправления URL

return redirect()->back();
// or 
return back();
// brings you back to the previous page which means you are being redirected

Таким образом, ответ будет

Пост-запрос продолжает получать 302, потому что вы выполняете перенаправление на вашем контроллере, поэтому вы получите статус 302 вместо 200

Если вы считаете, что мы неверно истолковали ваш вопрос, возможно, вы могли бы сказать нам, какой статус вы ожидали? или что именно ты хотел, чтобы произошло

0 голосов
/ 06 апреля 2020

Попробуйте включить в свою форму CSRF-токен :

<form class="form" role="form" method="POST" action="{{ url('/admin/store/custom-text/update') }}">
    @csrf
    <div class="form-group @hasError('custom_text')">
        <textarea name="custom_text" value="{{ old('custom_text') }}">
        </textarea>
        @error('custom_text')
    </div>
    <button class="btn btn-success" type="submit">Update Custom Text</button>
</form>
0 голосов
/ 06 апреля 2020

Вы получаете 302 код состояния, потому что после некоторых действий вы перенаправляете обратно

return redirect()->back();

Если вы обновляете форму с помощью ajax запроса и не хотите 302 код состояния, удалите строку ниже и просто вернуть некоторые данные

$data = 'saved-custom-text';
return $data;
...