最近刚学json,用jquery的$.ajax+struts2.1.6用个简单的例子试了下,在ff下表现正常,但IE就是通过不了,上网查了一天,发现像我这样的情况不是很多,没办法,只有来这里看有没有人也出现这种情况
我的action
[code="java"]
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import com.opensymphony.xwork2.ActionSupport;
@Controller("forum.util")
public class ForumUtilAction extends ActionSupport{
protected final Log logger = LogFactory.getLog(getClass());
String id;
String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public void setId(String id) {
this.id = id;
}
public String setNotice(){
message="abc";
return "success";
}
}
[/code]
配置文件:
[code="xml"]
false
true
true
[/code]
页面js
[code="js"]
[/code]
在Firefox下能够正常打印“success”,但IE下就是不行,直接进error函数了,在控制台中也看到了action返回的json数据,显示为[JSON]{"message":"abc"},是我哪里弄错了吗?希望牛人解惑
[b]问题补充:[/b]
[quote]LZ使用的是直接的jsonplugin吗?LZ试一下这个com.googlecode.jsonplugin
我一般都使用这个plugin
http://code.google.com/p/jsonplugin/downloads/list
jansel (高级程序员) 2009-09-01[/quote]
我使用的就是你提供的网页中的jsonplugin-0.34.jar这个版本,你所说的“直接的jsonplugin”是什么意思?谢谢
jsonplugin,我上次用了另外一个,老是搞不定,最后换了这个才通。
看LZ的情况,这个显然可以使用了。
看了一下ajax调用的地方也没写错啊
看了一下1.3.2的文档:
[quote]
通过 HTTP 请求加载远程数据。
jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求。
$.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息。详细参数选项见下。
注意: 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml")。错误的 MIME 类型可能导致不可预知的错误。见 Specifying the Data Type for AJAX Requests 。
注意:如果dataType设置为"script",那么在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)
jQuery 1.2 中,您可以跨域加载 JSON 数据,使用时需将数据类型设置为 JSONP。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。数据类型设置为 "jsonp" 时,jQuery 将自动调用回调函数。
[/quote]
LZ要看一下[color=red]注意[/color]的地方,MIME的信息是否正确,然后就是是不是跨域加载JSON数据了
如果实现不行,LZ试一下1.3.2这个版本吧
LZ使用的是直接的jsonplugin吗?LZ试一下这个com.googlecode.jsonplugin
我一般都使用这个plugin
[url]http://code.google.com/p/jsonplugin/downloads/list[/url]
error函数执行的时候,alert出来的数据是什么?
也有可能是服务器返回的数据有问题导致解析出错?