2013-08-20 22 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请求。 顺便说一句,你给了你解决方案的提示,因为它在你使用字符串参数的时候起作用。