1. ホーム
  2. javascript

[解決済み] Json giving 301 Moved Permanently(永久に移動しました

2022-02-19 21:17:49

質問

Firefoxの場合、Firefoxのみポップアップで「このウェブページは新しい場所にリダイレクトされています」という警告が表示されます。入力されたフォームを新しい場所に再送信しますか?

テキストボックスから値を抽出するためにjavascriptを使用しています。

firebugで確認したところ、以下のように表示されました。 PUT /admin/submit-scan/ 301 は永久に移動しました。 PUT submit-scan 302 Found

私のJS

function submitGoods(){
    var registeredNo = $('input[name=registeredno]').val();
    var weight = $('input[name=weight]').val();
        $.ajax({
            type: 'PUT',
            url: '/admin/submit-scan/',
            data: {
                registeredNo: registeredNo,
                weight: weight,
                _token: csrfToken
            },
            dataType: 'json'
        }).done(function(data){

                data = $.parseJSON(data);
            });

}

マイルート

Route::put('submit-scan', 'Controllers\Admin\DashboardController@putUpdateSubmitScan');

マイコントローラー

 public function putUpdateSubmitScan()
    {
        if (Request::ajax())
        {
            return Response::json(array('success' => 1, 'data' => "test"));
        }
    }

何が問題だったのか、心当たりはありますか?

解決方法は?

末尾のスラッシュを削除するとうまくいきます(おそらくLaravel 4.1より前。)

url: '/admin/submit-scan'

更新情報

で述べたように Laravel4 POSTの説明不要のGETへのリダイレクト

ララベル bootstrap/start.php を呼び出しています。 $app->redirectIfTrailingSlash(); が原因だと思われます。これはLaravel 4.1で変更されています。

http://laravel.com/docs/upgrade#upgrade-4.1