【发布时间】:2013-12-22 20:23:11
【问题描述】:
我创建了一个自定义 wordpress 插件,它应该执行以下操作:
- 页面加载时,提交表单
- ajax 捕获它并执行一些其他功能
- 返回结果
唯一的问题是插件开始重定向到另一个页面并无限循环。我已将其隔离到 jquery 提交代码,但我无法弄清楚我做错了什么。我希望你们能帮助一个睡眠不足的程序员。
$('#searchform').submit(function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: '../wp-content/plugins/otwcsl/getStores.php',
data: $('#searchform').serialize(),
success: function(response) {
searchLocations(response);
$('#searchform').unbind().submit();
}
});
});
它在我的本地主机环境中运行良好,但在“实时”网站上却发疯了。我无法弄清楚断开连接,但我很确定问题出在此处。提前致谢!
更新:我已经把所有东西都删掉了,直到看起来像这样:
$('#searchform').submit(function(e) {
return false;
}
它已停止循环,但会从 http://www.mypage.com/index.php/locations/ 重定向到 http://www.mypage.com/index.php/?s=。我无法弄清楚,因为它显然不是影响它的 ajax。
最终更新:我终于解决了这个问题。我删除了所有“提交”功能,而是使用了按钮单击。我使用了在选项 3 中找到的答案 here。我猜以前的一些脚本严重干扰了表单。不幸的是,此时我不能禁用脚本来查找根本原因。感谢大家帮我解决问题!
【问题讨论】:
-
您是否检查过其他页面是否正在重定向回您的原始页面?
-
完全删除 ajax 调用会发生什么?它会重定向吗?
-
嗯,呵呵!每次 ajax 调用完成时,您都会触发提交处理程序,一遍又一遍地启动相同的函数。你期待什么。
-
我已经尝试删除整个 ajax 调用,但它仍然不断重定向到另一个页面。不过,它已停止循环该重定向。