Origen cruzado bloqueado entre Ajax y el controlador Spring.
Quiero una función de Javascript para enviar datos a un controlador Spring y recibir una respuesta. No obstante, debido a la política de Referente estricta en caso de estar cruzando orígenes, la solicitud no se lleva a cabo.
Controlador Spring:
@Controller
public class EventController {
@ResponseBody
@RequestMapping(value = “/event”, method = RequestMethod.POST)
public String handleAjax(@RequestParam Integer id, HttpServletRequest request, HttpServletResponse response) {
response.setHeader("Access-Control-Allow-Origin", "*");
return "OK";
}
}
Funciones de Javascript:
function getContextPath() {
return window.location.pathname.substring(0, window.location.pathname.indexOf(“/”,2));
}
function move(moveDir,velocity){
$.ajax({
type : “POST”,
url : getContextPath() + “/event”,
success: function(data){
console.log(data)
}
});
}
Sé que tengo que permitir el cruce de orígenes para estos archivos. Hasta ahora, lo que intenté no funcionó.
Lista de lo que intenté:
-> Añadir @CrossOrigin(origins = “http://localhost:8081”, maxAge = 3600) al controlador
-> Añadir response.setHeader(“Access-Control-Allow-Origin”, “*”); al controlador
-> Añadir crossorigin=”anonymous” a la etiqueta