使用Get方法传递Twig / Ajax请求

时间:2013-08-20 19:44:24

标签: javascript ajax symfony twig

我正在尝试使用Get方法传递Ajax请求。 我已经在我的功能请求中添加了一个警报,以确保链接,但我没有警报!

我的代码是:

这是我的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);
}

当我在请求函数中放入一个字符串参数时,我有警报。

感谢。

1 个答案:

答案 0 :(得分:0)

如果您在twig中使用path()函数,它将始终输出类似/app_dev.php/...的内容。现在的问题是 - 如果将结果作为参数传递给函数 - 函数认为它是regex literal

我在控制台中发现了错误(F12)。在Chrome Developer Console中,它显示以下错误:

  

Uncaught SyntaxError:提供给RegExp构造函数的无效标志

这基本上告诉你它被视为RegExp。你想要的是你的路径的字符串表示。因此,就这样做:

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

在开始/结束括号之前/之前注意'...'

对我而言,它正确输出我的路径,我可以用它做一个AJAX请求。 顺便说一句,你给了自己解决方案的提示,因为当你使用字符串参数时它会起作用。