我正面临ExtJS 4.1.3的问题。 在我的ExtJS控制器中,我调用了一个像这样的ajax请求:
Ext.Ajax.request(
{
url: '/my/url/method.do'
,timeout: 1800000
,jsonData: param
,success:function(response)
{
var jsonData = Ext.JSON.decode(response.responseText);
alert(jsonData);
// some code
}
,failure:function(response)
{
// some code
}
,scope:this
}
);
这是春天调用的方法:
@RequestMapping(value = "/my/url/method.do")
public @ResponseBody String method(Locale userLocale, @RequestBody Param[] param) {
return "string" + "<br/>" + "string";
}
它适用于Google Chrome和IE浏览器,但不适用于Firefox。实际上,我收到以下错误:
Ext.Error: You're trying to decode an invalid JSON String: string<br/>string
而且我不知道它为什么不起作用,因为如果我在Firefox控制台中执行以下代码,它就会起作用:
Ext.JSON.decode("string<br/>string")
所以,如果有人能帮助我,我将不胜感激!
答案 0 :(得分:0)
感谢您的回答。
此网站http://jsonlint.com/表示"string<br/>string"
为有效的JSON字符串。但这是一个“错误的”JSON验证,因为它不是正确的JSON格式。
我解决了在控制器的produce="application/json"
注释中添加@EequestMapping
的问题。所以现在Ext.JSON.decode()甚至可以用于Firefox。
我还可以使用ajax请求发回一个可序列化的对象,然后解码响应以获取数据(包含我的字符串),因为Spring会自动将对象序列化为JSON。