weickchen 2008-08-14 20:58
浏览 195
已采纳

难了,有关ajax的执行问题

今天在jsp页面中这样执行了一个js,在这个js中把数据发送给servlet,可是遇到了一个很奇怪的问题:

在jsp页面中的代码是这样的:

1.clearResum
但是js中的clearResum()函数不执行,这个函数的主要功能是把数据发送到后台给servelt处理,也就是没有把数据发送给serlvet。

但是如果改成:
2.clearResum,则xmlHttpRequest.status的返回值始终是0,我已经把项目成功发布了,所以应该不存在tomcat的配置问题。

3.如果把 1 中的代码换成 clearResum,这个js也始终不执行,而把clearResum()函数换成一个简单的test()函数( 这个函数只有一条alert("") )就可以执行。

4.在 1 中,如果把clearResum中的onclick="clearResum()"中的clearResum()函数换成一个简单的test()函数( 这个函数只有一条alert("") )就可以执行。

问题:被搞的很糊涂,非常不理解上述四点描述的问题,特别是第 1 点和第 3点,clearResum()为什么始终不执行,而第 4 点执行后得到的xmlHttpRequest.status的值始终是0?希望哪位兄弟帮忙解答一下,本人感激不尽,先谢谢了!!

[b]问题补充:[/b]
谢谢 ham:
clearResum()
{
send("clearResum?p=1");
}

send()的方法体主要是建立xmlHttpRequest对象并发送数据和调用handleResponse方法处理服务器的返回信息。

还有,您能不能解释下中href 和onclick执行js的区别,谢谢关注!
[b]问题补充:[/b]
嗯,好,谢谢 ham 的解释,回头我再仔细检查和测试下function send()部分.

  • 写回答

2条回答 默认 最新

  • iteye_17163 2008-08-14 23:43
    关注

    中.
    href属性是指链接地址,即浏览器的地址栏,默认是相对定位.如果是类似http://url这种形式,就采用绝对定位的方式.
    由于浏览器的地址栏中可以通过javascript:code的方式直接调用javascript,所以href中如果是javascript:code的形式,那么就会执行code部分的代码.

    onclick='code',这里其实是类似于创建了一个Function的对象,即onclick=new Function('code');这种形式,其中的code就是被执行的javascript代码.

    这两种方法执行javascript区别就是,href中以javascript:code方式调用的是javascript语句,onclick是执行的一个Function的对象.正因为onclick是一个Function对象,所以它可以有返回值,onclick 中所调用的方法如果返回true就证明这个方法的onclick事件是有效的,返回false就证明这个方法的onclick事件是无效的.这里可能看不出效果来,但是如果有一个元素的onmousedown事件返回了false,那么它的onclick事件将永远不会执行.因为onclick是需要mousedown并且mouseup才会成功.

    在href和onclick同时存在的时候,会先调用onclick方法,如果onclick方法返回值为true或者无返回值的话就会继续执行href中的内容.
    javascript:void(0);这句话的原理我还不清楚,不过它的作用就是什么也不执行.

    上面只是个人的理解,如果讲错了,多多包涵.

    在你的代码中,onclick和href执行的效果应该是一样的.感觉错误应该是出现在send方法之中.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号