2012-07-17 58 views
0

瓶响应不触发Ajax回调

$.post("/login", {}, function(data){ 
    alert("yolo"); 
}); 

这是通过一个按钮点击其中“/登录”地图触发到我的服务器(使用瓶装):

@route('/login', method='POST') 
def login(): 
    return "something" 

我面临的问题是,我的回调从来没有被调用,我反过来回到我的身体的“东西”的HTML页面。

如何让我的浏览器将我的服务器响应视为数据而不是新的html页面?

+0

它不应该这样做,无论如何,你不应该得到重定向。 '$ .post'如何被触发?我们可以看到周围的JS和HTML吗? – Fresheyeball 2012-07-17 03:03:47

回答

1

我怀疑你正在触发你的$.post类似.click<form>标签内的提交按钮。如果是这种情况,那么您的表单将执行标准提交并由您的服务器重定向到相关操作。为了防止这种情况发生(并允许发生ajax),您需要防止浏览器默认表单提交行为。这可以很容易地做到这一点:

$('#IDofYourForm').submit(function(e){ e.preventDefault(); }); 
+0

是的,我确实在表单标签中有帖子,我相信我的一些测试可能因浏览器缓存而失效。感谢Fresheyeball! – lunaleaps 2012-07-22 21:55:07