2013-01-15 84 views
2

我的ajax請求在我的主機上以完美的方式運行,但每當應用程序安裝在服務器上時,所有請求都具有狀態「301已永久移動」。如何解決301爲Ajax請求永久移動

我已經通過了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); 
    } 
} 

看來這個請求的響應不能返回到原點位置(的請求)。

回答

0

之後幾天,這個問題已經得到解決。這是一個衝突速滑運動員的肌肉HTTP和HTTPS請求,以便所有我所做的是強迫我的應用程序與該行的HTTPS一邊是security.yml

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

謝謝大家^^

0
  1. 嘗試直接瀏覽到{{url('Update_client')}}
  2. 檢查你的HTML源代碼如果{{url('Update_client')}}輸出是正確的
+0

不,它不起作用。總是在我的主機上工作的問題。它可能是緩存問題嗎?請求顯示的標題緩存控制\t私有 – fbh

+0

你說所有的請求返回301,是你的每一頁是應用程序?看起來更像是一個服務器配置。 – Gintro

+0

是所有的ajax請求被移動:/它不是我誰安裝它在服務器上,但我必須調試它的經理說,這個問題應該糾正在我身邊,但我不知道它是什麼: /這就是爲什麼我說這可能是一個緩存問題 – fbh

0

在這種情況下幫助別人 - 我只是遇到了同樣的問題,並通過使用path()而不是url()來解決它。使用url()將調用定向到http然後重定向到https,這很可能導致301.使用path()調用直接指向https。

0

從routing.yml中的模式中刪除尾部斜槓