我正在尝试使用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);
}
当我在请求函数中放入一个字符串参数时,我有警报。
感谢。
答案 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请求。 顺便说一句,你给了自己解决方案的提示,因为当你使用字符串参数时它会起作用。