0

我正在尝试使用 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);
}

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

感谢。

4

1 回答 1

0

如果您path()在 twig 中使用该函数,它将始终输出类似/app_dev.php/...的内容。现在的问题是 - 如果你将结果作为参数传递给函数 - 函数认为它是一个正则表达式文字

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

未捕获的 SyntaxError:提供给 RegExp 构造函数的标志无效

这基本上告诉你它被视为正则表达式。您想要的是路径的字符串表示形式。因此,只需这样做:

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

注意'...'开/关括号之后/之前的右侧。

对我来说,它正确地输出了我的路径,我可以用它做一个 AJAX 请求。顺便说一句,您给了自己解决方案的提示,因为它在您使用字符串参数时有效。

于 2013-08-21T06:35:09.413 回答