我正在使用Ajax简化Spring 3.0文章中指定的带有JSON的Spring MVC 。
根据各种论坛上的建议对我的代码进行了无数次尝试和修改之后,我的代码仍然无法正常工作。
我继续收到以下错误:(406)根据请求“接受”标头(),此请求标识的资源只能生成特性不可接受的响应。
根据需要,我在appconfig.xml中。
app-config.xml
<context:component-scan base-package="org.ajaxjavadojo" /> <!-- Configures Spring MVC --> <import resource="mvc-config.xml" />
mvc-config.xml
<mvc:annotation-driven /> <!-- Forwards requests to the "/" resource to the "index" view --> <mvc:view-controller path="/" view-name="index"/> <!-- Resolves view names to protected .jsp resources within the /WEB-INF/views directory --> <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <property name="mediaTypes"> <map> <entry key="html" value="text/html"/> <entry key="json" value="application/json"/> </map> </property> <property name="viewResolvers"> <list> <bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> </bean> </list> </property> </bean>
这就是我要给控制器的东西
@Controller @RequestMapping (value = "/convert") public class ConversionController { @RequestMapping(method=RequestMethod.GET) public String getConversionForm(){ return "convertView"; } @RequestMapping(value = "/working", headers="Accept=application/json", method=RequestMethod.GET) public @ResponseBody Conversion getConversion(){ Conversion d = new Conversion("d"); return d; } }
jsp jquery调用
function convertToDecimal(){ $.getJSON("convert/working", {key: "r"}, function(aConversion){ alert("it worked."); $('#decimal').val(aConversion.input); }); }
我非常感谢您对此问题的任何投入。谢谢
尝试删除的标头限制Accept,放置一个断点,然后查看实际值是多少。或使用FireBug执行此操作。
Accept
另外看看这个jQuery问题