2016-08-13 146 views
0

首先,我必須說我已經閱讀了很多類似的問題解答,但他們都沒有解決這個問題。所以我只能用我自己的代碼來問。Spring MVC 4.3.2 + AJAX + JSON錯誤406不可接受

,問題就來了Spring MVC的Web應用程序和AJAX調用W/JSON請求/響應和錯誤是常見的「406不可接受」

這裏是代碼的重要組成部分:

@RestController 
@RequestMapping(value = "/search") 
public class AjaxController { 

@Autowired 
private UserManager userManager; 
@RequestMapping(value = "getUserData.htm") 
    public Login getSearchResultViaAjax(@RequestBody SearchCriteriaUserId search) { 
     Login login = new Login(); 
     login.setUsername("john"); 
     login.setPassword("1234"); 
     return login; 
    } 
} 

JS代碼

function searchViaAjax() { 
var data = {} 
data["uId"] = $("#uId").val(); 

$.ajax({ 
    type : "POST", 
    contentType : "application/json", 
    url : "search/getUserData.htm", 
    data : JSON.stringify(data), 
    dataType : 'json', 
    timeout : 100000, 
    success : function(data) { 
     console.log("SUCCESS: ", data); 
     $("#message").html(data); 
    }, 
    error : function(e) { 
     console.log("ERROR: ", e); 
     $("#message").html(e.responseText); 
    }, 
    done : function(e) { 
     console.log("DONE"); 
    } 
}); 
} 

AJAX使調用正確(它將THE #uId的參數傳遞給控制器​​)​​。 我檢查我發現下面的提示,但沒有成功:
1) 「MVC:註解驅動」 dispatcher-servlet.xml文件
2)傑克遜依賴於POM
3)試過@ ResponseBody(不@RestController)和 「產生= '應用/ JSON'」
4)頭標題= 「接受= ...」
5)經過gettes /上POJO setter方法返回的類

我不知道還有什麼地方可以看。 謝謝。

回答

0

最後,經過鬥爭錯誤的48小時就出來了通過這些兩件事情任何一個(真的不知道是哪個):
1)我使用web.xml上的「熱媒」的url-pattern重定向調度程序Servlet。將其更改爲「 .do」。
2)降級春季版本4.3.2 - > 4.2.2

謝謝大家。