Json给301永久移动

Cod*_*uru 5 javascript php json laravel laravel-4

在Firefox上,只在Firefox浏览器会弹出,给你一个警告,"这个网页被重定向到新的位置.你想重新发送你输入的新位置的形式."

我没有任何形式,我使用javascript从文本框中提取值

我查了萤火它说PUT /管理/提交扫描/ 301永久移动PUT提交-302扫描发现

我的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);
            });

}
Run Code Online (Sandbox Code Playgroud)

我的路线

Route::put('submit-scan', 'Controllers\Admin\DashboardController@putUpdateSubmitScan');
Run Code Online (Sandbox Code Playgroud)

我的控制器

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

知道出了什么问题吗?

Jof*_*yHS 38

删除尾部斜杠应该可以解决问题(最有可能在Laravel 4.1之前,见下文).

url: '/admin/submit-scan'
Run Code Online (Sandbox Code Playgroud)

更新

正如Laravel4 POST中提到的无法解释的重定向到GET

Laravel bootstrap/start.php称$app->redirectIfTrailingSlash();这似乎是罪魁祸首.这在Laravel 4.1中已经改变了:

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

  • 我已通过将.htaccess中的重定向规则更改为307而不是301(laravel默认设置)来解决此问题 (2认同)