我的网站上有几个AJAX调用,运行良好。但是,我正在尝试使用 AJAX 在侧边栏上创建一个简单的电子邮件订阅,以使用此脚本(存储在外部文件中)提交电子邮件:
jQuery(document).on( 'click', '#news_button', function() {
var news_email = jQuery("#news_email").val();
var pattern = new RegExp(/^(("[w-s]+")|([w-]+(?:.[w-]+)*)|("[w-s]+")([w-]+(?:.[w-]+)*))(@((?:[w-]+.)*w[w-]{0,66}).([a-z]{2,6}(?:.[a-z]{2})?)$)|(@[?((25[0-5].|2[0-4][0-9].|1[0-9]{2}.|[0-9]{1,2}.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2}).){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})]?$)/i);
if (pattern.test(news_email)) {
jQuery.post( "subscribe.php", {email: news_email}, function( data ) {
alert('sent');
});
}
});
HTML代码非常简单,有两个输入(一个电子邮件,一个按钮)。
当我跟踪执行时,我可以看到 jQuery 脚本正确获取电子邮件并调用了订阅.php文件。但是,出了什么问题:- 使用 POST 方法,参数电子邮件永远不会传输- 使用 GET 方法,请求以 302 状态重复(和接收)近 20/30 次,而不是与服务器进行一次交互。
我真的不知道它来自哪里。你能帮忙吗?
您确定在本地主机或实际的Web服务器上运行您的网站吗?因为如果您的 HTML 文件在浏览器中使用 file://协议打开,那么 POST 将无法正常工作。HttpRequestObject 仅适用于客户端-服务器体系结构。
确保浏览器中 http://协议。