के साथ JQuery/Ajax के साथ JSON अनुरोध JSON/Spring MVC के लिए मैं बहुत नया हूं और एक स्प्रिंग एमवीसी नियंत्रक को AJAX कॉल का एक सरल उदाहरण प्राप्त करने का प्रयास कर रहा हूं - लेकिन मैं 400 - खराब अनुरोध की एक त्रुटि लौट रहा हूं ।वसंत
इंटरनेट को खराब करने के बाद, मैंने पाया है कि यह आमतौर पर उचित सामग्री प्रकार को सेट न करने के कारण होता है - लेकिन [मुझे विश्वास है] मैंने ऐसा किया है।
//validate the object
var urlString = "/ajax/add/";
$.ajax({
type:"POST",
url: urlString,
contentType: "application/json; charset=utf-8",
dataType: "json",
data: {value1: 'apples', value2 : 'oranges'},
success: function(result){
alert("success");
},
error: function(jqXHR, textStatus, errorThrown){
alert("error:" + textStatus + " exception:" + errorThrown);
}
}) ;
और मेरे नियंत्रक:
@Controller
itpublic class AddController {
private static Logger m_log = null;
@RequestMapping(value = "/ajax/add")
public String handle(@RequestBody String json){
DummyClass dummyRequest;
try {
ObjectMapper mapper = new ObjectMapper();
dummyRequest = mapper.readValue(json, DummyClass.class);
m_log.info("Value1: " + dummyRequest.getValue1());
m_log.info("Value2: " + dummyRequest.getValue2());
} catch (Exception e) {
}
finally{
}
return "called";
}
किसी को भी मेरी मदद कर सकते हैं बाहर
यहाँ मेरी AJAX कॉल है?
संपादित
यहाँ मेरी संदर्भ है कि मैं कॉन्फ़िगर करने के लिए इस्तेमाल करते हैं स्प्रिंग:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.project.do" />
<!--<mvc:annotation-driven/> -->
<bean class="com.project.do.interceptors.handler.mapping.HandlerInterceptorAnnotationAwareHandlerMapping "/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<bean class="com.project.do.viewresolver.ProjectViewResolver" >
<property name="tilesResolver" ref="tilesResolver" />
<property name="jspResolver" ref="jspResolver" />
</bean>
<bean id="tilesResolver" class ="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" />
<property name="order" value="2" />
</bean>
<bean id="jspResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
<property name="order" value="3" />
</bean>
<bean id ="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions" value="/WEB-INF/tiles/tiles.xml" />
<property name="preparerFactoryClass" value="org.springframework.web.servlet.view.tiles2.SpringBeanPreparerFactory"/>
</bean>
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/js/**" location="/js/" />
<mvc:resources mapping="/images/**" location="/images/" />
<mvc:resources mapping="/javascript/**" location="/javascript/" />
<mvc:resources mapping="/scripts/**" location="/scripts/" />
<mvc:resources mapping="/styles/**" location="/styles/" />
<mvc:resources mapping="/help/**" location="/help/" />
<!-- <mvc:view-controller path="/" view-name="welcome"/> -->
मैं नोट करना चाहिए कि मैं पैकेज com.project में अजाक्स के साथ एक काम नियंत्रक है .do.working, लेकिन अजाक्स और जेएसओएन के साथ गैर-कंट्रोलर नियंत्रक एक ही पैकेज में com.project.do.not.working
आप कैसे कॉन्फ़िगर कर रहे हैं वसंत नीचे के रूप में बदल रहा है? क्या आप प्रश्न संपादित कर सकते हैं और अपना कॉन्फ़िगरेशन विवरण जोड़ सकते हैं (शायद एक एक्सएमएल फ़ाइल जब तक कि आप नई @ कॉन्फ़िगरेशन शैली का उपयोग नहीं कर रहे हों)। – andyb
मैंने वसंत को कॉन्फ़िगर करने के लिए उपयोग किए गए संदर्भ को संलग्न किया। धन्यवाद! – kjl
क्या आप अपने अनुरोधबॉडी को @RequestParam स्ट्रिंग मान 1 के साथ बदल सकते हैं, .. (at) RequestParam स्ट्रिंग मान 2? और आप अपने ReequestMapping (जैसा कि raddykrish द्वारा उल्लिखित) के अंदर विधि = RequestMethod.POST रखना चाहते हैं। – Stealth