Ajax請求後臺傳送String型別總是進入Error function解決辦法總結
阿新 • • 發佈:2020-12-28
此文轉載自:https://blog.csdn.net/flny0/article/details/111768114
最近寫一個新的專案,測試環境搭建下服務端向客戶端傳送資料,並在頁面請求下相應這些資料,遇到請求發起後總是進入error函式,但資料在console.log後依然攜帶到客戶端了 ,查了很多資料,也諮詢了前端開發的好友,先總結一下解決辦法。因為我傳送的是String型別返回值,這是問題的前提
我是小菜,如果有錯誤,希望大神指點----
解決辦法一
1.在ajax請求中將"dataType": "json"去掉,這種方式我測試了,最簡單直接,或者將"json",改為text
解決辦法二
1.在後端將String型別的返回值做強制處理,轉為json格式字串。這裡提到一點,@ResponseBody註解可以將我們後端返回的型別轉為json型別,但String型別的返回值卻不能實現,我查了一些大神的部落格,具體原因我也很費解,如果有了解的大神可以@我,向老師學習。
@ResponseBody @RequestMapping("/send/array.html") public String testAjaxSendArray1(@RequestBody List<Integer> array){ logger = LoggerFactory.getLogger(TestSsmEnviroment.class); for (Integer num : array) { System.out.println("number"+num); } String msg="success"; String s = JSONUtils.toJSONString(msg); return s; }
解決方法三
1.在springmvc 配置檔案中新增訊息轉換器,具體如下
<mvc:annotation-driven> <!--配置mvc訊息轉換器--> <mvc:message-converters> <!--配置FastJson 用於支援將text/html輸出格式和application/json格式響應匹配--> <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
另外,做一下遇到的另一個問題,頁面相應406,解決辦法也是如此。
學無止境,奮力前行,加油