簡體   English   中英

在Ext.Ajax.Request之后發出解碼JSON

[英]Issue decoding JSON after Ext.Ajax.Request

我遇到了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
    }
);

這是在spring中調用的方法:

@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")

因此,如果有人可以幫助我,我將不勝感激!

感謝您的回答。 該網站http://jsonlint.com/指示"string<br/>string"為有效的JSON字符串。 但這是“假” JSON驗證,因為它不是正確的JSON格式。 我解決了在控制器的@EequestMapping批注中添加@EequestMapping produce="application/json"@EequestMapping 因此,現在Ext.JSON.decode()甚至可以用於Firefox。

我還可以發回一個可通過ajax請求序列化的對象,然后解碼響應以獲取數據(包含我的字符串),因為Spring會自動將對象序列化為JSON。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM