Jquery 为什么sammy.js从不使用post route?

Jquery 为什么sammy.js从不使用post route?,jquery,sammy.js,Jquery,Sammy.js,好的,我刚开始使用sammy.js,我不是很好,但是我能够很快地完成基本的工作。 我正在使用的HTML表单 <form id="contact_form" action="#/form" method="post"> <label for="name">Name:</label><input class="textbox" type="text" name="name" id="name" /> <label for="email">

好的,我刚开始使用sammy.js,我不是很好,但是我能够很快地完成基本的工作。 我正在使用的HTML表单

<form id="contact_form" action="#/form" method="post">
<label for="name">Name:</label><input  class="textbox" type="text" name="name" id="name" />
<label for="email">E-mail:</label><input  class="textbox" type="text" name="email" id="email" />
<label for="message">Message:</label><textarea class="textbox" name="message"  id="message"></textarea>
<button type="submit" name="submit" value="Submit" id="submit" />
<p id="message_outcome"></p>
当url中有#/form时,我会得到一个控制台日志,上面写着它的运行路径get('#/form')。。有什么想法吗

下面是一些可能有帮助的更多信息

除了sammy之外,我正在使用的Jquery插件

这是我的chrome控制台在我的表单上单击submit时所说的。 [星期日2010年10月10日05:29:27 GMT-0400(东部夏令时)]跑道get#/form/public/js/lib/sammy.js:96
[太阳2010年10月10日05:29:27 GMT-0400(东部夏令时)]404找不到get#/form错误:404找不到get#/form

这是因为如果您只是在浏览器中键入URL,您正在运行HTTP get to'#/form'。触发帖子的方法是提交表单。您希望同时设置get和post路线。Get显示表单,post处理提交。

我最近发现,Sammy.js捕获异常来自
app
定义中的一些错误JavaScript代码,将原始请求与原始发送的URL交换到某个通用Get。这确实令人困惑,您所要做的就是调试您的脚本,以防函数/方法误用。当你把所有的东西都清理干净后,原来的帖子会像魔术一样顺利通过。

对于帖子路线,另一件要记住的事情是了解sammy是如何工作的。当Sammy初始化时,它被绑定到一个jQuery选择器

var app = $.sammy('#content', function() {
   ...
});
对于post路由,Sammy绑定到选择器中用于初始化应用程序(在我们的示例中为内容)的所有表单,并侦听表单提交生成的单击事件,因为这些事件会冒泡到父级。现在,当它看到表单的提交事件时,如果表单指向一个路由,它将执行相应的路由

需要记住的一点是,如果您的表单在主选择器之外(例如,在标题中,它在#内容之外),那么sammy将永远不会收到提交事件,post路由也永远不会执行

var app = $.sammy('#content', function() {
   ...
});