最近写一个新的项目,测试环境搭建下服务端向客户端发送数据,并在页面请求下相应这些数据,遇到请求发起后总是进入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,解决办法也是如此。
学无止境,奋力前行,加油