我有一个可以在本地计算机上运行的html表单没有问题。 当我上传它时,它也可以工作,但不会显示成功消息。 这是我正在使用的脚本:
<script>
$(document).ready(function() {
// validate signup form on keyup and submit
$("#_form_1033").validate({
submitHandler: function(form) {
$.ajax({
url: form.action,
type: form.method,
data: $(form).serialize(),
success: function(data) {
$("#myformdiv").replaceWith("<p>Thanks!</p>");
}
});
}
});
});
</script>
有什么建议吗? 链接到实例 - http://ch2.co.il/form/smallsubscribe2015.html 可能是这个错误 - 如果是这样我该怎么办呢? XMLHttpRequest无法加载XXX否请求的资源上存在“Access-Control-Allow-Origin”标头。因此,不允许原点“http://ch2.co.il”访问。
谢谢
答案 0 :(得分:1)
问题是因为您正在制作跨域AJAX请求,这会阻止浏览器的安全性 - 请参阅 Same Origin Policy.
请求期望您向启用CORS的域发出请求,因此它会抱怨不存在的标头。
您需要将请求更改为jsonp
类型,或使用服务器端代理来获取数据。
最好将crossDomain:true
添加到您的ajax函数中,如下所示
$("#_form_1033").validate({
submitHandler: function(form) {
$.ajax({
url: form.action,
type: form.method,
crossDomain:true,
data: $(form).serialize(),
success: function(data) {
$("#myformdiv").replaceWith("<p>Thanks!</p>");
}
});
}
});
答案 1 :(得分:0)
感谢您的回复。这就是修正它的原因:
dataType: "json",