我想在表单加载时运行一段Javascript。表单处理自己。当表单加载时,Javascript工作得很好,但是当提交表单并且页面自己处理时,Javascript就会破坏它。
有没有办法让Javascript只在没有处理表单时运行?
更新
处理表单时遇到此错误(Javascript正在执行AJAX请求):
TypeError:'undefined'不是对象 XMLHttpRequest无法加载[ajax请求URL] Access-Control-Allow-Origin
不允许原始[原始页面]
这是HTML:
<form method="#" action="post">
<!--form elements-->
</form>
这是Javascript:
ajax.onreadystatechange=function() {
if (ajax.readyState==4 && ajax.status==200) {
document.getElementById("invitestar-message").innerHTML=ajax.responseText;
var signup = document.getElementById("invitestar-content-container");
setTimeout(function(){
body.removeChild(document.getElementById('invitestar-verifying'));
signup.style.display = "block";
}, 500);
}
}
ajax.open("GET","http://nvrforget.com/invitestar/check-invite/?invite=kNdqyJTjcf",true);
ajax.send();
此javascript运行的域不是http://nvrforget.com/
。
答案 0 :(得分:2)
此错误:
XMLHttpRequest cannot load [ajax request url] Origin [original page] is not allowed by Access-Control-Allow-Origin
导致是因为您无法对网页所在的其他域进行ajax调用。请参阅same-origin policy。
的此说明JSONP是一种进行跨源ajax调用的方法。它需要一个协作服务器(用于实现JSONP的服务器端)和一个将ajax请求添加为脚本标记的方法。像jQuery或YUI这样的库支持JSONP的客户端部分,或者您可以自己完成(但是您仍然需要一个协作服务器)。 Google JSONP如果您想了解更多信息。