2

我正在使用来自模态框的 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 时,它会在控制台中出现错误。我发现如果我使用硬编码的 url - 它可以工作!但是使用{{ path('_inserttask') }}as url 会出错。我知道这是我没有使用的引号。如何解决问题?它已经杀死了 2 个小时 :-(

4

1 回答 1

13

从我上面看到的你没有在路径变量的值上加上双引号。试试这个 -

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。例如。我会选择将该路径 url 嵌入到 div 的属性之一中。

在我的树枝模板文件中(例如 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();
        });
    }
});
于 2013-03-16T11:40:10.603 回答