【发布时间】:2015-01-01 08:12:40
【问题描述】:
我想解决我的 AJAX 跨域问题。这是我在 Chrome 中收到的错误消息:
XMLHttpRequest 无法加载 http://'myaddress'/TEST/user/login/testuserid 。 Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Origin。
这是我的源代码
$.ajax({
crossDomain : true,
dataType : "json",
url: fullUrl,
method: method,
headers:headers,
data: body,
success: function(data, state, res){
if (data == null)
data = '';
console.log( '[[[[[[[[SUCCESS!!]]]]]]] url: ' + url + ', state:' + state + ', data : ' + JSON.stringify( data ) );
callback(data, state, res);
},
error: function(data, state){
if ( data == null )
data = '';
console.log( '[[[[[[[[[ERROR!!]]]]]]]]] url: ' + url + ', s tate:' + state + ', data : ' + JSON.stringify( data ) );
callback(data, state, null);
}
});
跨域的Servlet代码
httpRes.setHeader("Access-Control-Allow-Origin", "*");
httpRes.setHeader("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE");
httpRes.setHeader("Access-Control-Allow-Headers", "*");
【问题讨论】:
-
您是否检查过浏览器中的响应以查看是否实际设置了标头?
-
你试过
httpRes.setHeader("Access-Control-Allow-Headers", "x-requested-with");吗?
标签: javascript jquery ajax