AJAXのdataType問題
3092 ワード
dataType 。 ,jQuery HTTP MIME , XML MIME XML。 1.4 ,JSON JavaScript , script 。 , 。 :
"xml": XML , jQuery 。
"html": HTML ; script dom 。
"script": JavaScript 。 。 "cache" 。 : ( ), POST GET 。( DOM script )
"json": JSON 。
"jsonp": JSONP 。 JSONP , "myurl?callback=?" jQuery ? , 。
"text":
以上はW 3 cSchoolからcopyで来ましたが、符号化時に1つの問題に遭遇しました:1、Controllerコード:
/**
*
*/
@RequestMapping(value = "save", method = RequestMethod.POST)
public @ResponseBody String createMenu(MenuBean menuBean,
@RequestParam(value = "imgUpload") MultipartFile uploadFile,
HttpServletRequest request) throws IOException, BizException {
String contextPath = request.getSession().getServletContext().getRealPath(Constants.UPLOAD_PATH);
//
return sysMenuService.saveMenu(menuBean, uploadFile, contextPath);
}
このコードでは、保存に成功した場合に戻ります.
"[{\"retVal\":\"success\"}]"
保存に失敗すると、次のようになります.
"[{\"retVal\":\"fail\"}]"
フロントajaxコード
$.ajax({
url: urlPath,
type: "POST",
data: postParam,
dataType: "JSON",
error: function (data) {
$.Popup.error(" !");
},
success: function (data) {
......
}
});
私がdebuggerをしたとき、typeof(data)がobjectではなくstringを返していることに気づきました.なぜですか.調査の結果、dataTypeは「JSON」ではなく「json」であるべきで、大文字を小文字に変更した後、返されるdataのタイプがobjectタイプであることが分かった.