2012-12-02 70 views
2

我遇到類似這樣的問題: Uncaught SyntaxError: Unexpected Token - jQuery - Help!未捕獲的SyntaxError:意外的標記非法

我使用CakePHP的2.x到生成一個jQuery AJAX請求。它適用於我的本地設置罰款,但未能在生產服務器上,給我一個未捕獲的語法錯誤:

未捕獲的SyntaxError:意外的標記非法

這是PHP:

// Get the select element by its generated id attribute. 
echo $this->Js->get('#'.$equipment_code)->event(
    // Change in the dropdown selection 
    'change', 
    // Request an array of compatible brands (match model type) 
    $this->Js->request(
     array('controller'=>'builds','action'=>'ajax_brands'), 
     // Update the associated brand dropdown 
     array('update' => $hashed_brand_code, 'dataExpression' => true, 'data' => '$("#'.$equipment_code.'").serialize()') 
    ) 
); 

產生這種腳本:

<script type="text/javascript"> 
//<![CDATA[ 
$(document).ready(function() { 
    $("#equipment-14-0").bind("change", function (event) { 
     $.ajax({ 
      data:$("#equipment-14-0").serialize(), 
      dataType:"html", 
      success:function (data, textStatus) { 
       $("#brand-14-0").html(data);}, 
       url:"\/proj\/eztek-dev\/builds\/ajax_brands" 
      }); 
      return false; 
     }); 
    $("#brand-14-0").bind("change", function (event) { 
     $.ajax({ 
      data:$("#brand-14-0,#equipment-14-0").serialize(), 
      dataType:"html", 
      success:function (data, textStatus) { 
       $("#model-14-0").html(data); 
      }, 
      url:"\/proj\/eztek-dev\/builds\/ajax_models" 
     }); 
     return false; 
    }); 
    $("#equipment-14-2").bind("change", function (event) { 
     $.ajax({ 
      data:$("#equipment-14-2").serialize(), 
      dataType:"html", 
      success:function (data, textStatus) { 
       $("#brand-14-2").html(data); 
      }, 
      url:"\/proj\/eztek-dev\/builds\/ajax_brands" 
     }); 
     return false; 
    }); 
    $("#brand-14-2").bind("change", function (event) { 
     $.ajax({ 
      data:$("#brand-14-2,#equipment-14-2").serialize(), 
      dataType:"html", 
      success:function (data, textStatus) { 
       $("#model-14-2").html(data); 
      }, 
      url:"\/proj\/eztek-dev\/builds\/ajax_models" 
     }); 
     return false;}); 
    }); 
//]]> 
</script> 

這裏是stack trace

我非常感謝您提供的任何幫助,如果有任何其他有用的信息,請讓我知道,我會盡快把它放在這裏。

謝謝!

編輯:

謝謝大家的幫助。我通過刪除js文件中的未接受字符修復了未捕獲的語法錯誤,但AJAX仍然無法在生產服務器上運行。我在控制檯中出現以下錯誤:

Failed to load resource: the server responded with a status of 500 (Internal Server Error) 
{Domain name} /proj/eztek-dev/builds/ajax_brands?data%5BEzcomponent%5D%5B2%5D%5Bezmodel_type_id%5D=5 

Network requests http://resaraos.com/proj/screenshot2.png

東西能與序列化錯誤會()?

+0

禁用所有Chrome擴展程序,並逐個重新啓用它們以查看哪個擴展程序導致了錯誤。 –

+0

什麼是您的本地服務器和生產服務器操作系統?你在本地和生產服務器上的應用的相對路徑是什麼? – SaidbakR

+0

你確定你正在輸入這些URL的權利,這是一個Linux服務器。 – adeneo

回答

0

我只想指出,你生成你的php代碼的方式是非常實用的。

$arr1 = array(
    'controller'=>'builds', 
    'action'=>'ajax_brands' 
); 

$arr2 = array(
    'update' => $hashed_brand_code, 
    'dataExpression' => true, 
    'data' => '$("#'.$equipment_code.'").serialize()' 
); 

$jsRequest = $this->Js->request($arr1, $arr2); 
$jsGet = $this->Js->get('#'.$equipment_code)->event('change', $jsRequest); // Change in the dropdown selection & update the associated brand dropdown 

$echo $jsGet; 

就像是有道理的。

對於回覆舊帖子(沒有真正回答問題的真實答案),這只是真的刺穿了我的眼睛。

0

的人絆倒在這個問題逾期提示:

此特定錯誤不是由瀏覽器指定的。使用Firefox(Firebug控制檯)獲取有關錯誤的更多信息。

相關問題