1. 程式人生 > >ajax返回String型別導致的flowplayer報錯p.replace is not a function問題

ajax返回String型別導致的flowplayer報錯p.replace is not a function問題

今天用flowplayer拉流遇到了一個比較奇葩的問題,大致思路是js根據頁面的名稱採用ajax從後臺獲取號碼,然後用號碼建立任務輸出rtmp流,flowplayer進行播放,但是flowplayer初始化的時候報了個p.replace is not a function的錯誤,大致是說flowplayer庫裡的某個函式沒定義吧,一直以為是庫引用的問題,換了半天也沒解決,最後一層層跟蹤,發現直接用名稱建立任務就正常,根據號碼就不正常,所有問題肯定出在ajax獲取號碼這一步,一開始寫的是返回String,改為返回List<String>就可以了,這種問題非常隱蔽,因為返回String的時候跟蹤程式碼,返回的值也正常,估計是格式不對,導致了後面的錯誤,報錯又是在引用庫的js程式碼裡。下面附上程式碼。

java程式碼:

@RequestMapping(value = "getTerminalNumber")
	@ResponseBody
	public List<String> getTerminalNumber( @RequestParam String name) {//注意,返回List型別
		List<String> checkRet = new ArrayList<String>();
		String number = "";
		List<TerminalConfigPO> TerminalConfigPOs = terminalConfigDao.findByField("terminalName", name);
		if(TerminalConfigPOs.size()>0){
			number = TerminalConfigPOs.get(0).getE164Number();
		}
		checkRet.add(number);
		return checkRet;
	}

js程式碼:

var telNumber;
		$.ajax({
			type: "POST",
			url:   path+'/ajax/getTerminalNumber',
			cache: false,
			async:false,		//同步
			data:{"name":name},
			dataType: "json",
			success: function (ret) {
				if(ret.length>0){
					telNumber = ret[0];
				}
			},
			error: function (ret) {
				return;
			}
		});