数据通过jQuery AJAX到金字塔后端的困境

时间:2011-06-06 15:20:32

标签: jquery python ajax pyramid

所以,我试图通过AJAX将id为“AltTitle”的元素的值发送回Pyramid后端。使用下面的代码,Python会收到AlternativeTitle的request.param。而已。没有价值。我被卡住了。我想学习如何构建一个AJAX数据字典,这样我就可以将所有值传递回Python,但到目前为止,我无法让它工作。任何帮助表示赞赏....

$(document).ready(function(){
    $("button").click(function(){
        $.ajax({
            type:"POST",
            url:"/edit/29241",
            data:{
                "AlternativeTitle": $("#AltTitle").html()
            },
            success:function(result){
                alert( result );
                }
        });
    });
});
<p id="AltTitle" contenteditable=True>Existing Title</p>
<button>Save</button>

3 个答案:

答案 0 :(得分:1)

好吧,{}似乎导致了这个问题。这可能是因为jQuery在Jinja2模板中,但即使添加{%raw%}也没有改变结果。通过将脚本更改为:

data:"AlternativeTitle:" + alttitle + '&' "othervalue" + otherval,

我在服务器上获得了序列化版本。我还没有把它写回db,但我认为它现在可以工作了。谢谢Fosco和Antoine。

答案 1 :(得分:0)

您是否先尝试获取该值?试一试:

    var alttitle = $("#AltTitle").html();
    $.ajax({
        type:"POST",
        url:"/edit/29241",
        data:{ AlternativeTitle : alttitle },
        success:function(result){
            alert( result );
            }
    });

答案 2 :(得分:0)

我要做的第一件事就是在浏览器的Javascript控制台中输入$("#AltTitle").html()来查找request.params['AlternativeTitle']的值(Chrome中的Ctrl + I)。然后,如果结果符合您的预期,我会检查浏览器的开发人员工具中发布的值,以确保发布的AlternativeTitle的值符合您的预期。在Chrome中,您将在开发人员工具的“网络”标签中看到您的HTTP请求。然后我会看一下代码服务器端。

但是没有那么多可能出现服务器端错误,因为你说{{1}}在那里但是空的。