我正在研究在客戶端使用Spring MVC和JQuery的應用程序。通過我的客戶執行的AJAX調用(託管在端口80上運行的Apache網頁)看起來像這樣:XHR錯誤:訪問控制 - 允許來源不允許訪問http:// localhost
var login = function() {
$.ajax({
url: "http://localhost:8080/login",
type: 'POST',
data: { key: "value" },
error: function(jqXHR){console.log("Error");}
}).done(function(data, textStatus, jqXHR) {
console.log(jqXHR.responseText);
});
return false;
}
而且我的服務器(Tomcat的端口8080上運行)設計如下(考慮到CORS要求):
@RequestMapping(value = "/login", method = RequestMethod.POST)
@ResponseBody
public String login(HttpServletResponse response, @RequestBody Map<String,Object> requestParameters){
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Headers", "*");
response.setHeader("Access-Control-Request-Method","*");
String value = (String) requestParameters.get("key");
// Do validation here
}
而且這是在Chrome控制檯中顯示的錯誤:
XMLHttpRequest cannot load http://localhost:8080/login. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
儘管設置跨域頭,那爲什麼我得到這個錯誤?有人能夠解釋我在這裏做錯了嗎?
對不起,也許我沒能在這個問題清楚了,我同時運行兩個服務器。 AJAX請求在Apache服務器(在端口80上運行)上產生,並且在Tomcat服務器上運行(在端口8080上運行)。 – Vishnu