Jsonについて

3228 ワード

$ajax({type:「get」、
             async:false
             url:"http://192.168.191.2:8080/server/userfunc/list.do「
             data:{account:'accounttest 1'}
             dataType:「jsonp」、
             success:function(json){
                 alert(JSON.strigify(json);
             },
             error:function(){
                 alert('fail')
             }});
プロジェクトの発表に伴って、ドメインをまたぐ問題が発生しました.だから、jsonの研究を始めました.使い方は簡単です.以上のように、このjsonの使い方とjsonのデータの使い方は一字の差しかないです.原理は大編の文章紹介があります.紹介しません.
ここにもう一つの問題があります.

データは入手しましたが、警告があります.玉に足りないですか?
ここはバックエンドの問題です.インターネットで資料を調べて、バックエンドにheaderを設置する必要があります.ここではspringmvcを使っています.
关于jsonp_第1张图片
本人は自分で測って、テストコードは以下の通りです.
/**
	 *           :{"systemGroup":"WEB", "mobileIds":"bdzfzl001,sgbj001"}
	 */
	@RequestMapping("/listFunc.do")
	public void listFunc(@RequestParam("callback")String callback, String systemGroup, String mobileIds, ModelMap model, HttpServletResponse response) {
		
		response.setContentType("application/json");
		
		logger.info("systemGroup:"+systemGroup + "|" + "mobileIds:"+mobileIds);
		String[] arrMobileId = mobileIds.trim().split(",");

		List<Map<String, Object>> dataList = map_t_func_listService.listFunc(
				systemGroup, arrMobileId);
		JsonResult res = new JsonResult(dataList);
		Object data = res.getData();
		String message = new JsonResult(data).toJson();
		logger.info("message:"+message);
		model.put("message", message);
		
		try {
			OutputStreamWriter os = new OutputStreamWriter(response.getOutputStream());
			String data1 = callback + "(" + "{\"data\":[{\"FUNC_ID\":\"bdzfzl001\",\"FUNC_TITLE\":\"      \",\"FUNC_URL\":\"listView.html\",\"ICON_URL\":\"./img/funButton/btn_bdzfzl.png\",\"SHOW_ORDER\":\"6\"},{\"FUNC_ID\":\"sgbj001\",\"FUNC_TITLE\":\"    \",\"FUNC_URL\":\"listView.html\",\"ICON_URL\":\"./img/funButton/btn_sgbj.png\",\"SHOW_ORDER\":\"9\"}],\"msg\":null,\"code\":200}" + ")";
			os.write(data1);
			os.flush();
			os.close();
		} catch(Exception e) {
			e.printStackTrace();
		}
		
	}
レスポンス.set ContentTypeを書かないと警告があります.
レスポンス.set ContectType(「appication/json」)と書くと警告はありません.
レスポンス.set ContectType(「text/javascript」)と書いたら、警告もありません.
したがって、まとめて言うと、2つの書き方は有効です.ここでは本人は符号化の問題を扱っていませんので、過去に伝えるのは文字化けの可能性があります.だから、本人の例を引用する読者がいる場合は、ここの文字化け問題は自分で解決しなければならないと注意してください.