php - 如何仅在未处理表单时运行某个 Javascript 片段?

标签 php javascript forms handle

我有一段 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/

相关文章:

javascript - 导入没有脚本标签的appengine channel js api

c# - 如何将 C# 字符串变量从 Windows 窗体传递到 .BAT 文件

ruby-on-rails - Rails has_many 通过表单,在连接模型中带有复选框和额外字段

php - 如何通过在 php 中使用 anchor 将数组传递到另一个页面

javascript - 将两个变量从 php 传递到 ajax 然后返回到 php

php - 将彩色 pdf 转换为传真友好的灰度 pdf(使用 Imagick)

javascript - 如何在 Node.js 请求中发布多个相同名称的值

php - 在不使用枚举的情况下,从 MySQL 的一组预选数据中输入数据的最佳方法是什么?

javascript - 如何在不影响所有键的情况下在 jquery 中使用 keydown 事件?

javascript - Bootstrap 模态元素偏移量为零