我使用jquery有以下ajax帖子:
$.post("/login", {}, function(data){
alert("yolo");
});
由按钮点击触发,'/ login'映射到我的服务器(使用Bottle):
@route('/login', method='POST')
def login():
return "something"
我面临的问题是我的回调从未被调用过,而是在我的身体中找回一个带有“东西”的html页面。
如何让我的浏览器将我的服务器响应视为数据而不是新的html页面?
答案 0 :(得分:1)
我怀疑您在$.post
标记内的提交按钮上触发了.click
<form>
之类的内容。如果是这种情况,那么您的表单将进行标准提交,并由您的服务器重定向到相关操作。要防止这种情况(并允许发生ajax),您需要阻止浏览器默认表单提交行为。这可以很容易地完成:
$('#IDofYourForm').submit(function(e){ e.preventDefault(); });