2 u011218527 u011218527 于 2016.02.17 17:44 提问

Ajax+nodejs新手求问!

我有一个页面A,其中通过iframe加载了一个页面B。页面B里有个表单,表单里有个submit按钮。我在这个B页面的js中为这个submit按钮添加了一个事件函数。在这个事件函数中我创建了一个XMLHttpRequest实例xhr1。然后后台我用nodejs接收提交的表单数据并发送响应内容。我想让响应内容出现在父页面A的特定位置上。

现在数据接收、发送响应内容都没有问题,问题是响应的内容不能出现在A页面特定位置上。
我xhr1的onreadystatechange事件函数为

 xhr1.onreadystatechange=function(){
     if (xhr1.readyState==4) {
        if ((xhr1.status>=200&&htr1.status<300)||xhr1.status==304) {
                    window.parent.document.getElementById("regi").innerHTML=xhr1.responseText;

        }
        else{
            window.parent.document.getElementById("regi").innerHTML="Unsuccessfull: ";

        }

    }
 }

regi是父页面A中的一个元素的id。
可是,这样写的结果是父页面A的regi元素内容并没有变为xhr1.responseText的内容,xhr1.responseText居然写在了页面B里。请问是哪里出问题了?怎样才能实现我想要的效果?
非常感谢!!

1个回答

showbo
showbo   Ds   Rxr 2016.02.17 17:55
已采纳

你那个按钮时提交表单了吧,都没有执行你 xhr1.onreadystatechange的转换函数,要return false阻止表单提交,或者按钮改为button,不要submit

 <input type="submit" onclick="yourfunction();return false;"/>
u011218527
u011218527 回复无聊码农: 谢谢!!确实如您指出的这样——根本就没有执行转换函数,而是执行的默认行为。不过,我的问题不是没有阻止表单提交,而是在那之前第一步按钮的onclick事件都没有绑定成功。。。我是通过一步一步加alert检查出来的。不过,我到现在也没弄清楚为什么之前onclick事件都没有绑定成功,我就重写了一遍就可以了。非常感谢您指出问题!!
2 年多之前 回复
u011218527
u011218527 回复无聊码农: 谢谢!!确实如您指出的这样——根本就没有执行转换函数,而是执行的默认行为。不过,我的问题不是没有阻止表单提交,而是在那之前第一步按钮的onclick事件都没有绑定成功。。。我是通过一步一步加alert检查出来的。不过,我到现在也没弄清楚为什么之前onclick事件都没有绑定成功,我就重写了一遍就可以了。非常感谢您指出问题!!
2 年多之前 回复
showbo
showbo 回复阿琛Bonnie: 改button就好了,submit的话自己注意阻止表单提交了,方法已经给你了。注意不能跨域
2 年多之前 回复
u011218527
u011218527 回复无聊码农: 嗯嗯,是的。这个浏览器兼容问题我后面再完善。我现在用的Chrome呀,应该没问题啊。。。
2 年多之前 回复
showbo
showbo IE8-要设置returnValue=false
2 年多之前 回复
showbo
showbo 回复阿琛Bonnie: <input type="submit" onclick="event.returnValue = false; event.preventDefault&&event.preventDefault();" />
2 年多之前 回复
showbo
showbo 回复阿琛Bonnie: preventDefault标准浏览器的方法,IE8-不支持
2 年多之前 回复
showbo
showbo 回复阿琛Bonnie: 事件怎么绑定的?自己增加alert语句看看就知道了
2 年多之前 回复
u011218527
u011218527 没有,我在Button的onclick事件函数的第一行就写了 e.preventDefault()。所以后面的应该都执行了吧。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于ajax请求,表单请求,以及nodejs响应
关于ajax请求,表单请求,以及nodejs响应前端jQuery ajax片段<!DOCTYPE html> <html> <head></head> <body> <div> <label> 姓名: <input type="" name="name"></label> <label> 密码: <input type=
Nodejs Express Ajax跨域请求
var express = require('express'); var app = express();var bodyParser = require('body-parser');//说明下:因为下面要用到res.body获取到前端传过来的参数,用res.body的前提是首先导入body-parser //跨域处理:app.all('*',function (req, res, next
新手求问、
这种UI布局应该怎么实现。
实现基于Node.js的ajax前后端交互的简单例子
前端代码: ajaxtest button function ajax() { $.ajax({ url: 'http://127.0.0.1:8080/', dataType: 'json', type: 'get',
NodeJS Ajax请求
js代码 function show(fileId){ $.ajax({ url:'http://localhost:80/show', dataType:'jsonp', data:{ 'fileId':fileId }, cache:false, jsonp:'c
nodejs ajax 请求
前端: 服务器地址: 账号id: 游戏命令: function submitdata(){ var params ={ serverAddr: $("#id_serverAddr
nodejs模仿ajax请求
'use strict' const fs = require("fs"); const http = require("http"); var Url = require("url"); var querystring = require('querystring'); var defaultSetting = { url:null, //request url data:null, //
前端ajax请求添加rsa签名,nodejs请求添加签名,nodejs api添加验签
前端ajax请求添加rsa签名 如何使用openssl生成私钥 公钥 http://blog.csdn.net/scape1989/article/details/18959657教程 :https://github.com/kjur/jsrsasign/wiki/Tutorial-for-Signature-class 文章最后有需要引入的js地址 签名原理是 : 前端使用私钥rsa-sh
Node.js通过jquery的ajax来获取参数
这是在前面练习的基础上继续学习发出的心得。在页面刷出数据后想对某些内容执行删除操作,这里用到jquery的ajax,通过ajax传入一个唯一的值,比如collection里面的_id,然后在node处理程序里面接收这个参数,调用remove方法执行删除操作。具体代码如下: 1、我的ajax代码是写在一个页面当中。 $('.my-delete').click(function(){
nodejs微博系统源码(接口)
nodejs开发的微博系统,新手看看 会有很大帮助。 nodejs开发的微博系统,新手看看 会有很大帮助 nodejs开发的微博系统,新手看看 会有很大帮助