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

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

       

    更多内容详见微信公众号:Python测试和开发

    Python测试和开发

  • 相关阅读:
    AddDemo核心代码
    uniapp vuecli 命令行 新建项目 报错关键词:RuleSet
    java maven dependency
    java代码的执行过程
    Spring中Bean的单例和多例
    java代码的执行过程
    Condition
    Java对象初始化过程执行顺序
    线程池不推荐使用 Executors 去创建
    java线程的六种状态
  • 原文地址:https://www.cnblogs.com/phyger/p/14202840.html
Copyright © 2020-2023  润新知