0

テスト中に、JSONデータを含むHTTP応答に「&」が含まれている場合はprimefacesが失敗し、「&」を削除すると機能します。送信するデータはURLですが、URLをエンコード形式で送信する必要がありますか?この問題は、データ(urlではない)に「amp」またはそのような文字が含まれている場合に発生しますか?その場合の最善のアプローチは何ですか。

コールバック付きのコマンドリンク

<h:form prependId="false" id="getAllTopics" style="display:none;">
        <p:commandLink action="#{topicController.listAllTopics}" id="topicListAllCmdLink" value=""
            oncomplete="javascript:renderTopic(xhr, status,args)" />
    </h:form>

JS機能

function renderTopic(xhr,status,args){
        jsonArray=[];
        console.log(args.topicJSON);
        jsonArray = $.parseJSON(args.topicJSON);
   .....
}

Google開発者キットから応答

<partial-response><changes><update id="javax.faces.ViewState"><![CDATA[4297043168621098325:5437886159631978839]]></update><extension ln="primefaces" type="args">{"topicJSON":"[{\"topicBody\":\"http://www.youtube.com/watch?v=m3ZyU98N3Fk&feature=relmfu \",\"videoAudioUrl\":\"\",\"topicGuid\":5600,\"userGuid\":0,\"imageURL\":\"\",\"topicOwnUserName\":\"srikanth marni\",\"topicCommentList\":[],\"topicUpdateTime\":1346817736000}]"}</extension></changes></partial-response>

コンソールのエラー

Uncaught TypeError: Cannot read property 'topicJSON' of undefined circle_topic.js.jsf:150
renderTopic circle_topic.js.jsf:150
PrimeFaces.ab.oncomplete circle.jsf:175
k.complete primefaces.js.jsf:1
b.Callbacks.bv jquery.js.jsf:16
b.Callbacks.bE.fireWith jquery.js.jsf:16
bF jquery.js.jsf:23
b.ajaxTransport.send.bv
4

1 に答える 1