如何在ajax中解决跨域[重复]

Posted

技术标签:

【中文标题】如何在ajax中解决跨域[重复]【英文标题】:how to solve cross domain in ajax [duplicate] 【发布时间】: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");吗? 【参考方案1】:

您需要使用JSONP 来制作CROSS DOMAIN Requests

请阅读:

Loading cross domain endpoint with jQuery AJAX

Make cross-domain ajax JSONP request with jQuery

【讨论】:

JSONP 不是一个明确的要求。这只是一种选择。

以上是关于如何在ajax中解决跨域[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何解决ajax跨域问题(转)

如何解决ajax跨域问题(转)

如何解决ajax跨域问题(转)

如何解决ajax跨域问题(转)

如何解决ajax跨域问题

如何发送跨域ajax请求[重复]