我正在对 Web 应用程序上的现有表单进行一些修改。我无法访问表单的代码,但我可以向页面添加脚本,所以我在 jQuery 的帮助下进行了一些自定义。
所以,现在我有这样的事情:
jQuery( "#new_user" ).submit(function( event ) {
event.preventDefault();
var fullname = jQuery("#user_name").val();
var email = jQuery("#email_primary").val();
var company = jQuery("#contact_customer").val();
jQuery.ajax({
async: false,
dataType: 'jsonp',
url:"https://server.com/script.php",
data: {"fullname": fullname, "email": email, "company": company},
success: function(response){
alert("json says " +response.res);
}
});
alert("hello");
});
现在,这工作正常。我基本上是在拦截表单提交。
问题是,只有当我将 alert() 调用保留在那里时才会执行 ajax 调用,这显然是我不想要的,它只是用于调试。如果我删除 alert() 调用,表单将提交,但 ajax 调用将无法正常工作。我可以访问应该接收 JSONP 请求的 Web 服务器,但它甚至没有到达那里。
第二个警报实际上从未被执行,但实际上我不需要任何东西,我只需要在网络服务器上接收 GET 即可。
我试图将 async:false 添加到 ajax() 选项,但没有运气。
我有点困惑,并且对此进行了很多研究/实验。任何提示表示赞赏,在此先感谢。