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,解决办法也是如此。

学无止境,奋力前行,加油

Ajax请求后台发送String类型总是进入Error function解决办法总结

上一篇:ASP.NET MVC Core的ViewComponent


下一篇:php 设计模式之 适配器模式