2016-04-22 56 views
0

这是我的Ajax调用:Spring MVC的返回简单的文本,而不是JSON在使用Ajax调用

$.ajax({ 
     url: 'configuration/activePlatform/', 
     type: 'GET', 
     dataType: 'json', 
     contentType: "application/json", 
     success: function(data){ 
      console.log("getActivePlatform ACK"); 
      $('#activePlatform').append(data); 
     },  
     error: function(xhr, status, error) { 
     var err = eval("(" + xhr.responseText + ")"); 
     alert(err.Message); 
     } 
    }); 

从这一呼吁的响应是200 OK。

我得到一个明确的文本作为输入反应,错误味精是“意外令牌的”

这是我的服务器端代码:

@Controller 
@RequestMapping("/configuration") 
public class configuration { 

    @Autowired 
    public CommonConfigurations configurations; 


    @RequestMapping(value = "/activePlatform", method = RequestMethod.GET, 
      produces = MediaType.APPLICATION_JSON) 
    public @ResponseBody 
    String activePlatform() throws Exception { 

     return configurations.activePlatform; 
    } 
} 

我做了什么错?

回答

1

在您的dispatcher-servlet.xml您需要将viewName“jsonTemplate”配置为MappingJackson2JsonView类型的bean。您需要配置类型为BeanNameViewResolver的视图解析器。这样,viewName“jsonTemplate”将与MappingJackson2JsonView匹配,并且解析的JSON响应将返回给客户端。

<mvc:annotation-driven/> 
<bean name="viewResolver" 
class="org.springframework.web.servlet.view.BeanNameViewResolver"/> 
<bean name="jsonTemplate" 
class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/> 

重要: -

你需要有以下JAR在classpath

  • 杰克逊的注解-2.6.0.jar
  • 杰克逊核心-2.6.0 .jar
  • jackson-databind-2.6.0.jar

我发现这个link有用。

+0

问题是,这只是当我返回一个例子CommonConfigurations类对象,当我返回一个字符串,我把它作为纯文本,而不是在JSON格式 – USer22999299

+0

为什么你需要一个字符串消息,你能解释一下你的问题有点.. –

+0

我想返回的值 - “沙盒”或“生产”作为JSON格式的字符串。 – USer22999299

0

您可以从控制器方法返回整个configurations对象,并在你的Ajax回调假设你的配置对象调用data.activePlatform是不是太大了,说你是跨层承载了太多不必要的数据。

相关问题