Jquery DataTable AJAX跨域請求的解決方法及SSM框架下服務器端返回JSON格式數據的解決方法

如題,用HBuilder開發APP,涉及到用AJAX跨域請求後臺數據,剛接觸,費了很多時間。幸得高手指點,得以解決。java

APP須要用TABLE來顯示數據,所以採用了JQ 的DataTable。  在實現過程當中發現存在跨域的問題,採用如下方法解決。ajax

$(document).ready(function() {
			$('#example').DataTable({
				"ajax": {
					"url":"http://Localhost:8085/System/nurse/getPatients",
					"dataTyle":"jsonp"},
				"bPaginate": true, //翻頁功能
				"bLengthChange": false, //改變每頁顯示數據數量
				"bFilter": true, //過濾功能
				"bSort": false, //排序功能
				"bInfo": true, //頁腳信息
				"bAutoWidth": true, //自動寬度
				"columns": [{
						"data": "name"

  將  sAjaxSource 替換成 如上的 ajax  ,設置數據類型爲 JSONP。當時這部分功能作好後,發現仍是報錯誤,獲取不到值。。報【Uncaught TypeError: Cannot read property 'length' of undefined】錯誤。。查來查去,發現是ajax獲取的值,不是須要的JSON格式。必定要JSON對象數組。必定要以data開頭的JSON數組。以下格式:json

{"data":[{"birthday":"2011/04/25","idtype":"身份證","number":"30","idcode":"1231131313","sex":"男","name":"常1","DT_RowId":"e58930f0ae5442fb8f67474422a76e95","statue":"治療中"}]}

  因爲,後臺是採用SSM框架的。。獲取的數據自己就是JSON格式的。惟獨缺乏了data開頭,處理上只要在Control處理上對返回的 LIST對象數據進行再處理下就OK了,以下:跨域

@RequestMapping(value="getPatients", method=RequestMethod.GET)
	@ResponseBody
	public JSONObject getPatients() {
	
		 List<PatientForApp> results=new ArrayList<PatientForApp>();
		 JSONObject json=null;
		try {
			
			 results = service.findByPageforApp();
			Map map = new HashMap();
		
			 map.put("data", results);
			 json = JSONObject.fromObject(map);
		} catch (Exception e) {
			logger.error(e.toString(), e);
		/*	ar.setFailMsg(Const.DATA_FAIL);*/
		}
		return json;
	}

  以上就實現了SSM框架經過Control處理返回JSON對象數組。。數組

記憶留存,有何不對請指正。app

相關文章
相關標籤/搜索