Fileをアップロードすると、ブラウザは常に追加されます.<br>解決策
2653 ワード
StructsのFileUploadコンポーネントを使用してファイルをアップロードする場合、返されたJson文字列には、「{」message」:」インポートファイルが成功しました」「result」:「OK」}」など、返されたJson文字列に不思議な
タグが追加され、ブラウザでは「」{message」:インポートファイルが正常に」、result」:OK}.これにより、Ajaxが戻り値を解析する際にエラーが発生します.
私のアップロードコードは、デフォルトでは常にerrorの処理に入ります.
jQuery.ajaxFileUpload({ type:"POST", url:"/****/upload.action?file="+fileName, secureuri:false, fileElementId:"upload", dataType: "json", success:function (data, status) { if (data != null) { data = JSON.parse(data); MBJ.alert(" ", data.message); } else { MBJ.alert(" ", " , : status = " + status); } }, error:function (data, status, e) { MBJ.alert(" ", " : status = " + status); } });
Googleを1周した後、多くの人が私と同じであることを発見しました.解決策はresponseの戻りタイプを【text/html】に設定することです.Struts 2ではActionの構成でこのように設定する必要があります.
<result name="success" type="json"> <param name="root">msg</param> <param name="contentType">text/html;charset=UTF-8</param> </result>
annotation方式であれば、この言葉を付ける必要があります.@Action(value = "upload", results = { @Result(name = SUCCESS, params = { "root", "msg", "contentType", "text/html;charset=UTF-8" }, type = "json") })