您的位置:首页 > 移动开发 > Objective-C

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

2008-10-10 11:41 471 查看
 
运行helloworld时出现 javascript错误

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

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

sayHelloWorld( );
也可以运行

运行结果为:

sayHelloWorld( ); "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="测试" onclick="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看了一下结构突然醒悟了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐