1. 程式人生 > 實用技巧 >Ajax請求後臺傳送String型別總是進入Error function解決辦法總結

Ajax請求後臺傳送String型別總是進入Error function解決辦法總結

此文轉載自: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,解決辦法也是如此。

學無止境,奮力前行,加油