我有一段 Javascript,我想在表单加载时运行。表单自行处理。当表单加载时,Javascript 工作得很好,但是当提交表单并且页面自行处理时,Javascript 会破坏它。
有没有办法让 Javascript 仅在表单未处理时运行?
更新:
处理表单时出现此错误(Javascript 正在执行 AJAX 请求):
TypeError: 'undefined' is not an object XMLHttpRequest cannot load [ajax request url] Origin [original page] is not allowed by 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/
。
最佳答案
此错误:
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 的客户端部分,或者您可以自己完成(但您仍然需要一个协作服务器)。如果您想了解更多信息,请谷歌 JSONP。
关于php - 如何仅在未处理表单时运行某个 Javascript 片段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7459082/