dwr:报 missing callfack function 或者 “错误:对象不支持此属性或方法”

 

运行helloworld时出现 javascript错误

“错误:对象不支持此属性或方法”

在ie浏览器中http://localhost:8000/Struts_Dwr/dwr/test/service时可以出现

  • sayHelloWorld( ); <script type=text/javascript> var reply0 = function(data) { if (data != null && typeof data == 'object') alert(dwr.util.toDescriptiveString(data, 2)); else dwr.util.setValue('d0', dwr.util.toDescriptiveString(data, 1)); } </script>

也可以运行

运行结果为:

sayHelloWorld( ); <script type=text/javascript> var reply0 = function(data) { if (data != null && typeof data == 'object') alert(dwr.util.toDescriptiveString(data, 2)); else dwr.util.setValue('d0', dwr.util.toDescriptiveString(data, 1)); } </script> "Hello Worldwanxuesi!"

但是在jsp中用javascript运行会报以上错误,为什么??

jsp代码如下:

<%@ page language="java" pageEncoding="UTF-8"%>
 
<html>
  <head>
    <title>My JSP 'first_dwr.jsp' starting page</title>
 <script type='text/javascript' src='dwr/interface/service.js'></script>
  <script type='text/javascript' src='js/engine.js'></script>
  <script type='text/javascript' src='js/util.js'></script>
  <script type="text/javascript">
  function firstDwr(){
    service.sayHello("Jorwen",callBackHello);
  }
  function callBackHello(data){
    alert(data);
  }
  </script>
  </head>
     <body>
  <input type="button" name="button" value="测试" οnclick="firstDwr()">
  </body>
</html>

解决办法:

到网上下载一个dwr.jar 要是2.0的,大小为494k的,就不会出现这个问题了。

但是会出现另外一个问题(eclipse 控制台):

2007-11-19 13:22:52 org.directwebremoting.util.CommonsLoggingOutput error
严重: A request has been denied as a potential CSRF attack.

只要在

在web.xml配置文件中..
dwr的配置


<servlet>
  <servlet-name>dwr-invoker</servlet-name>
  <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
  <init-param>
   <param-name>debug</param-name>
   <param-value>true</param-value>
  </init-param>
  <init-param>  
            <param-name>crossDomainSessionSecurity</param-name>  
            <param-value>false</param-value>  
        </init-param>
 </servlet>

 

至此,控制台显示正常。但js脚本还会报错:

错误:例外被抛出且未被接住。

未完待续!!共同研究!!

 

# Qingfengcaiyun 发表于2007-12-08 20:36:12  IP: 60.55.62.*
将这些代码
<script type='text/javascript' src='dwr/interface/service.js'></script>
<script type='text/javascript' src='js/engine.js'></script>
<script type='text/javascript' src='js/util.js'></script>
编程

<script type='text/javascript' src='dwr/util.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/interface/service.js'> </script>
就正常了!
只要调用dwr.jar内部的engine.js和util.js就可以了
我也犯过你的毛病,后来打开dwr.jar看了一下结构突然醒悟了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值