2013-12-18 11 views
6

मैं स्ट्रिंग को Spring MVC Controller से Ajax पर वापस करना चाहता हूं। यह उम्मीद के अनुसार काम नहीं कर रहा है और त्रुटि देता है। इस के लिएवसंत नियंत्रक + अजाक्स रिटर्न स्ट्रिंग

मेरे अजाक्स कोड:

function ajaxRequest(item) { 

    $.ajax({ 
     type: "POST", 
     url: "/myPage", 
     data: { 
      item: item 
     }, 
     success: function (html) { 

      alert(html); 
     }, 
     error: function(e) { 
      console.log("Error:" + e); 
     } 
    }); 

} 

मेरे नियंत्रक:

@RequestMapping(value = "/myPage", method= RequestMethod.POST, produces="text/plain") 
public @ResponseBody String myController(HttpServletRequest request) { 
String myItem = request.getParameter("item"); 

... 

return myItem + "bla bla bla"; 
} 

क्रोम कंसोल परिणाम:

POST http://localhost:8080/myPage 406 (Not Acceptable) jquery.js 
Error:[object XMLHttpRequest] 

क्या मैं यहाँ याद आ रही है?

उत्तर

-1

सुनिश्चित करें कि आपके पास जैक्सन निर्भरता है। वसंत एमवीसी इस पर निर्भर हो सकता है।

+0

जैक्सन यहां शामिल नहीं है। –

4

मैंने इसे हल किया है। हम प्रतिक्रिया लेखक के साथ सही मूल्य वापस कर सकते हैं।

@RequestMapping(value = "/myPage") 
    public void myController(HttpServletRequest request, HttpServletResponse response) throws IOException { 

    String myItem = request.getParameter("item"); 

    ... 

    response.getWriter().println(myItem + "bla bla bla"); 
    } 
5

जब आप @ResponseBody साथ एनोटेट हैंडलर विधि से एक String लौटने के लिए, वसंत एक StringHttpMessageConverter जो text/plain में लौटने सामग्री प्रकार सेट का प्रयोग करेंगे। हालांकि, आपके अनुरोध में उस सामग्री-प्रकार के लिए Accept शीर्षलेख नहीं है, इसलिए सर्वर (आपका स्प्रिंग ऐप) text/plain लौटने के लिए अस्वीकार्य मानता है।

text/plain के लिए Accept शीर्षलेख जोड़ने के लिए अपना AJAX बदलें।

संबंधित मुद्दे