REST-сервис блокированного источника запроса перекрестного происхождения + AJAX
Невозможно позвонить в службу REST.
Мой весенний сервис
@RequestMapping(value = "/MAS/authenticate", method = RequestMethod.POST)
public ResponseEntity<Map<String, String>> authenticate(@RequestBody Subject subject) {
Map<String, String> result = new HashMap<String, String>();
result.put("result_detail", "Invalid Password");
result.put("result", "failure");
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(MediaType.APPLICATION_JSON);
responseHeaders.add("Access-Control-Allow-Origin", "*"); // also added header to allow cross domain request for any domain
return new ResponseEntity<Map<String, String>>(result, responseHeaders, HttpStatus.OK);
}
Мой код AJAX
$.ajax(
{
crossDomain: true,
type: "POST",
contentType: "application/json; charset=utf-8",
async: false,
url: "http://localhost:8080/SpringMVC/rest/MAS/authenticate",
headers: {"Access-Control-Allow-Origin" : "*"},
data:{},
dataType: "json", //also tried "jsonp"
success: function(data, status, jqXHR)
{
alert('success');
},
error: function(jqXHR, status)
{
alert('error');
}
});
Я получаю следующую ошибку :(
Блокирован перекрестный запрос: одна и та же политика происхождения запрещает чтение удаленного ресурса вHTTP: // локальный: 8080 / SpringMVC / отдых / MAS / Аутентифицировать, Это можно исправить, переместив ресурс в тот же домен или включив CORS.
я тоже пробовалdataType: "jsonp"
, он добавляет объект моего тела в URL, который создает другой URL и не может попасть в мой URL службы, и получил ошибку 404.
Мой браузер: Firefox 36.0.4
Как я могу избавиться от этой ошибки, любая помощь?