2013-10-05 51 views
0

我有那真的絆倒了我一個問題,奇怪的要求。在我的Opencart安裝中,我的account registration page無法正常工作。這是一個多站點,頁面正常工作on the other site。問題在於區域,當它試圖獲取基於國家的區域時會引發錯誤。當我用Firebug檢查它時,我發現它發送一個OPTIONS請求而不是GET請求,就像在另一個頁面上生成成功的請求時一樣。不幸的是,這不是唯一的問題,我能得到它通過指定發送GET請求「跨域:‘假’」作爲阿賈克斯調用的參數,並且仍然沒有修復錯誤。發送和返回的cookies也不同。我試圖找到潛在的問題,或者至少可以解決問題。Opencart的多點註冊

編輯: 我說回答了問題的評論,因爲它做了#1讓我更多的鏈接。

2日編輯: 我發現,你的方式進入註冊頁面事宜。有些鏈接不會產生任何問題。我越來越想,這可能與Cookie有關。

+0

請加你收到你的問題的錯誤。理想的情況下也顯示出相關的代碼... –

+0

這是幾乎可以肯定將是你的主題是過時的,如果它與一個而不是其他 –

+0

它不給錯誤代碼,它只是說,有一個錯誤。而且我正在使用與正在工作的網站相同的主題,我認爲這是一種跨域問題。註冊頁面模板文件的代碼在這裏(http://pastebin.com/PbShuSFc)。控制器的代碼在這裏(http://pastebin.com/HHUhSKNs)。 – Jeremy

回答

0

在這種情況下,OPTIONS請求確實很奇怪,並且幾乎看起來像客戶端(JS /瀏覽器)不知道服務器上可以使用哪些請求方法。

無論如何,在模板catalog/view/theme/<YOUR_THEME>/template/account/register.tpl找到這段代碼(幾乎文件結尾):

<script type="text/javascript"> 

    $('select[name=\'country_id\']').bind('change', function() { 
     $.ajax({ 
      url: 'index.php?route=account/register/country&country_id=' + this.value, 
      dataType: 'json', 
      beforeSend: function() { 

dataType: 'json',前添加type: 'get',type: 'post',所以你應該結束了:

<script type="text/javascript"> 

    $('select[name=\'country_id\']').bind('change', function() { 
     $.ajax({ 
      url: 'index.php?route=account/register/country&country_id=' + this.value, 
      type: 'post', 
      dataType: 'json', 
      beforeSend: function() { 

通過這個您可以指定應該使用哪個具體的HTTP請求方法。