2

我的 ajax 请求在我的主机上以完美的方式运行,但是每当应用程序安装在服务器上时,所有请求的状态都是“301 永久移动”。

我已经调试了 3 天,但没办法。我不知道为什么我会得到这个。我正在使用 Symfony2。

这是服务器端的请求:

$('#edit').click(function () {
    var $validEmail = $('#mail').validator({
        type: 'error',
        rules: [{
            control: 'email',
            message: 'Format invalide'
        }]
    });
    var $validpost_code = $('#post_code').validator({
        type: 'error',
        rules: [{
            control: 'required',
            message: 'Code postal obligatoire'
        }]
    });
    var $validRs = $('#rs').validator({
        type: 'error',
        rules: [{
            control: 'required',
            message: 'Raison sociale obligatoire'
        }]
    });
    var $validAddr = $('#addr').validator({
        type: 'error',
        rules: [{
            control: 'required',
            message: 'Adresse obligatoire'
        }]
    });
    var $validPhone_number = $('#phone_number').validator({
        type: 'error',
        rules: [{
            control: 'required',
            message: 'Tel obligatoire'
        }]
    }) && $('#phone_number').validator({
        type: 'error',
        rules: [{
            control: 'phone',
            message: 'Format requise mask: +33 # ## ## ## ##'
        }]
    });

    var $validCountry = $('#country').validator({
        type: 'error',
        rules: [{
            control: 'required',
            message: 'Ville obligatoire'
        }]
    });
    var $validTown = $('#town').validator({
        type: 'error',
        rules: [{
            control: 'required',
            message: 'Pays obligatoire'
        }]
    });
    var $valid3897 = $('#3897').validator({
        type: 'error',
        rules: [{
            control: 'required',
            message: 'Forme juridique obligatoire obligatoire'
        }]
    });
    if ($validEmail && $validpost_code && $validRs && $validAddr && $validPhone_number && $validTown && $valid3897 && IsPosInteger($('#post_code').find('input').val())) {
        var data = {
            name: $('#name').find('input').val(),
            id: "{{client.id}}",
            post_code: $('#post_code').find('input').val(),
            rs: $('#rs').find('input').val(),
            address: $('#addr').find('input').val(),
            email: $('#mail').find('input').val(),
            effectif: $('#efectif').find('input').val(),
            turnover: $('#turnover').find('input').val(),
            siteWeb: $('#site').find('input').val(),
            phone_number: $('#phone_number').find('input').val(),
            country: $('#country').find('input').val(),
            town: $('#town').find('input').val(),
            fax: $('#number').find('input').val(),
            kbis: $('#bis').find('input').val(),
            vat: $('#vat').find('input').val(),
            legal_form: $('#3897').find('select').val(),
            active: $('#active').attr('checked'),
            groupe: $('#groupe').find('input').val(),
            business_sector: $('#sa').find('input').val()
        };
        $("#site_content").block();
        $.ajax({
            url: "{{url('Update_client')}}",
            type: "POST",
            dataType: 'json',
            data: {
                data: ODEANCE.toJson(data)
            },
            success: function (updateResponse) {
                if (updateResponse) {
                    $("#site_content").unblock(),
                    jAlert('Modification effectuée  avec sucées ', 'Modification') //,
                    //document.location=document.location
                }
            }
        });
    } else {
        jAlert('Veuillez vérifier les formats de vos champs', 'Modification');
    }
});

这里是控制器中的方法:

public function updateClientAction() {
    try {
        //Getting sended data 
        $data = $this->getRequest()->get('data');
        $data = \json_decode(\stripslashes($data));
        $spi = $this->get('spi');
        $clientManager = $spi->getClientManager();
        $updateResponse =($clientManager->update($data) == true ) ?  1 : 0;
        return new Response($updateResponse);
    } catch (\Exception $ex) {
        $updateResponse = 0;
        return new Response($updateResponse);
    }
}

似乎请求的响应无法返回(请求的)原始位置。

4

4 回答 4

0
  1. 尝试直接浏览{{url('Update_client')}}
  2. {{url('Update_client')}}如果输出正确,请检查您的 html 源代码
于 2013-01-15T14:16:07.653 回答
0

几天后,现在问题已解决。这是 http 和 https 请求之间的冲突,所以我所做的就是用这条线强制我的应用程序到 https 端是 security.yml

access_control:        
      - { path: ^/,role: ROLE_USER, requires_channel: https }

谢谢大家^^

于 2013-01-29T13:42:39.343 回答
0

万一这对其他人有帮助 - 我只是遇到了同样的问题,并通过使用 path() 而不是 url() 解决了它。使用 url() 调用被定向到 http,然后被重定向到 https,这很可能导致 301。使用 path() 调用被直接定向到 https。

于 2015-11-15T20:34:21.140 回答
0

从 routing.yml 中的模式中删除尾部斜杠

于 2016-11-16T16:55:46.493 回答