Я столкнулся с проблемами с отправкой запроса POJ ajax на контроллер MVC.
Мой клиентский код:
cb.setConsumerKey("x","y");
cb.setProxy('proxy address'); //indicative
var id=null;
var pass= null;
var jsonObj=null;
function authorize(){
cb.__call(
"oauth_accessToken",
{oauth_verifier: document.getElementById("PINFIELD").value},
function (reply) {
id = reply.oauth_token;
pass = reply.oauth_token_secret;
jsonObj = {
user: []
};
jsonObj.user.push({
"id" : id,
"psw" : pass
});
alert(JSON.stringify(jsonObj));
$.ajax({
url: "/OAuthControl",
type: "POST",
data: JSON.stringify(jsonObj),
contentType: "application/json; charset=utf-8",
success: function(result) {
alert(done);
},
error: function(xhRequest, ErrorText, thrownError) {
alert(JSON.stringify(jsonObj));
}
});
}
);
}
тогда как код в контроллере:
@Controller
@RequestMapping(("/auth"))
public class AuthController {
................................................................
@RequestMapping(value="OAuthControl", method = RequestMethod.POST)
@ResponseBody
public String OAuthControl(
@RequestParam String user,
HttpServletResponse response
){
//todo
}
Я боролся с этим несколько часов, так как кажется, что контроллер никогда не называется. Я всегда получаю сообщение, определенное в функции ошибки.
$.ajax({
cache : false,
type : "POST",
url : "/OAuthControl?date=" + new Date(),
dataType : "json",
success : function(responseData) {
},
error : function(e) {
alert("Error :"+e);
}
});
новая дата гарантирует, что новый запрос выполняется каждый раз. Надеюсь это поможет