2013-08-20 20 views
0

我試圖使用Get方法傳遞Ajax請求。 我已在我的功能請求中添加了一條提醒,以確保鏈接正常,但我沒有提醒!Twig/Ajax通過get方法傳遞請求

我的代碼是:

這是我的看法html.twig:

<a href="#" onclick="request({{ path('mooniki_vote_acteur', { 'id' : 8 }) }});">Je valide !</a> 

這是我的javascript代碼:

function request(path) { 
alert(path); 
var xhr = getXMLHttpRequest(); 

xhr.onreadystatechange = function() { 
    if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { 
      alert(xhr.responseText); // Données textuelles récupérées 
    } 
}; 

xhr.open("GET", path, true); 
xhr.send(null); 
} 

當我把一個字符串參數的要求功能,我有警覺。

謝謝。

+0

這個'a'元素生成的HTML是什麼? – cheesemacfly

回答

0

如果您在樹枝中使用path()函數,它將始終輸出類似/app_dev.php/...的東西。現在的問題是 - 如果你將結果作爲參數傳遞給函數 - 函數認爲它是一個regex literal

我在控制檯(F12)中發現了錯誤。在Chrome開發者控制檯中,它顯示以下錯誤:

Uncaught SyntaxError: Invalid flags supplied to RegExp constructor

這基本上告訴你,它被視爲RegExp。你想要的是你的路徑的字符串表示。因此只是做這樣的:

<a href="#" onclick="request(' {{ path('mooniki_vote_acteur', { 'id' : 8 }) }} ');">Je valide !</a> 
----------------------------/\-------------------------------------------------/\ 

通知的'...'右後/開幕前/右括號。

對我來說,它正確地輸出我的路徑,我可以做一個AJAX請求。 順便說一句,你給了你解決方案的提示,因爲它在你使用字符串參數的時候起作用。