我正在使用模式框中的ajax请求来保存我的symfony2应用程序中的数据。调用模态框时,将呈现模态标记。所以我无法在模态框标记的任何地方使用“”符号。
我的代码是:
var path = {{ path('_inserttask') }};
$.ajax({
type: 'POST',
url: path,
data: { myid: 123456 },
success: function(data) {
$('#mask , .login-popup').fadeOut(300 , function() {
$('#mask').remove();
});
}
});
调用ajax时控制台出错。我发现如果我使用硬编码网址 - 它可以工作!但是使用{{ path('_inserttask') }}
作为url会出错。我明白这是我没有使用的引用标志。如何解决问题?它已经杀了2个小时: - (
答案 0 :(得分:11)
从我上面看到的你没有在路径变量的值上加上双引号。试试这个 -
var path = "{{ path('_inserttask') }}";
$.ajax({
type: 'POST',
url: path,
data: { myid: 123456 },
success: function(data) {
$('#mask , .login-popup').fadeOut(300 , function() {
$('#mask').remove();
});
}
});
还有一个想法,你是将这个脚本嵌入到twig模板中,稍后会渲染为html然后发送到浏览器吗?如果是,我认为上述变化将解决问题。
如果您尝试在纯JavaScript文件中使用twig。我认为它不会起作用。如果你这样做的话。我想你尝试将路径值放在html中,然后使用javascript来获取该值,然后调用ajax。例如。我会选择在div的一个属性中嵌入该路径url。
在我的twig模板文件中(例如index.html.twig)
<div id="abc" data-path="{{path('_inserttask')}}">
</div>
在我的javascript文件中(例如abc.js)
var path = $("#abc").attr("data-path");
$.ajax({
type: 'POST',
url: path,
data: { myid: 123456 },
success: function(data) {
$('#mask , .login-popup').fadeOut(300 , function() {
$('#mask').remove();
});
}
});