【问题标题】:Cherrypy dispatchingCherrypy 调度
【发布时间】:2012-10-30 16:16:29
【问题描述】:

我正在尝试从 jquery 脚本运行一个简单的后端 python 方法。

JQUERY

$(document).ready(function(){
    $('#btn').click(function(event){
    event.preventDefault();
    var commit = $("#test_form input[type='radio']:checked").val();
    alert(commit);
          $.ajax({
                type: "POST",
                url: "submitted",
                data: commit,
                success: function(data) {
                    alert(data["title"]);
                    $("#status").html(data["title"]);
                }
          });
     return false;
    });

    $('#update_help').click(function() {
        $('#update_info').toggle('slow', function() {
        // Animation complete.
        });
    });
});

在我的cherrypy python 脚本中,我有以下内容

@cherrypy.expose
def submitted(self, commit = 0):
    cherrypy.response.headers['Content-Type'] = 'application/json'
    print"Got here"
    #return simplejson.dumps(dict(title="hello", success=True))
    return "foo"

HTML文件如下

<form  id="test_form" method="post">

    <li class = "option">
            <input type="radio" name="commit" value = "0"/> Option 1
        </li>
        <li>
            Option 1

        </li>
        <li class = "option">
                <input type="radio" name="commit" value = "1"/> Option 2 <br>
        </li>
        <li class = "option">
            <input id="btn" type="submit"/>
        </li>
    </ul>        
        </form>

我注意到,ajax 帖子从未真正找到“提交”功能。整个页面重新加载,并且没有任何内容返回到 ajax 发布回调。我确定这与我在调度方面做错了有关,但我错过了什么?

谢谢

【问题讨论】:

  • 提交的处理程序在哪个类?也许这一行应该包括那个类 - url: "/class/submitted",
  • 这实际上将 url 解析为 localhost:9001/plugins/set_prop/submitted.,但在 Chrome Inspector 中我看到 404 not found 错误。 SetProp 是类。其中的 index 方法,效果很好。
  • 当您访问 localhost:9001/plugins/set_prop/submitted 或您的 ajax 请求到 /submitted 时,您会在 Chrome 中看到 404?
  • 在不知道 JS 正在使用的页面的 URL 的情况下,我会将 URL 更改为绝对 URL(即 /submitted),否则将被视为相对于当前的路径页。 HTH。

标签: jquery python cherrypy


【解决方案1】:

尝试将您的 javascript 更新为此...

      $.ajax({
            type: "POST",
            url: "/plugins/set_prop/submitted",
            data: commit,
            success: function(data) {
                alert(data["title"]);
                $("#status").html(data["title"]);
            }

希望这会有所帮助。 安德鲁

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多