我有一个页面需要使用$ .post()但是出于某种原因,当我从firebug控制台运行它而不是从我的脚本运行时,确切的代码是有效的吗?我的剧本是:
$(document).ready(function () {
$('#dl_btn').click(function () {
$.post(
"news_csv.php",
$("#dl_form").serialize(), function (data) {
alert('error');
if (data == 'success') {
alert('Thanks for signing up to our newsletter');
window.open("<?php echo $_GET['link']; ?>");
parent.Shadowbox.close();
} else {
alert(data);
}
});
});
});
这不是链接,因为它确实正确打印但它在jquery min的第140行给出了一个错误,我尝试使用不同版本的jquery但无济于事。我真的不明白为什么这不起作用。
当我从$ .post更改为$ .ajax并使用错误回调时,我确实收到错误'error'并且错误未定义?
不要以为任何人都有任何想法?非常感谢。
谢谢,
汤姆
答案 0 :(得分:0)
您的点击按钮是否放在表单元素中?
因为这样做,点击它不仅会触发你绑定到的onClick事件,而且还会形成提交,因此你最终会遇到浏览器并行执行两个请求的情况 - 结果不可预测,当然。
我尝试使用不触发表单提交的元素使用相同的代码,并且按预期工作。
虽然有一点:如果你打算使用简单的字符串作为返回值并对它做一些事情(显示它),那么你现在可以做你现在做的事情。但是,如果您从ajax请求获得更复杂的响应,则应将响应类型(xml,json ..)指定为post方法的最后一个参数。
希望这有帮助。