Skip to content

跨域

跨域

统计信息:字数 1237 阅读3分钟

常见报错

No 'Access-Control-Allow-Origin' header is present on the requested resource.'Ajax

跨域访问

在一个网站中,使用 ajax 获得另一个不同域的网站的内容。两个域名之间不能跨越域名发送请求或者请求数据,否则就是不安全的。跨域访问违反了同源策略。浏览器的 ajax 只能访问和他同源的 HTML 页面同源的资源。

服务器

在服务器端的 filter 或者 servlet 里面添加

response.setHeader("Access-Control-Allow-Origin", "*");

“Access-Control-Allow-Origin”表示允许跨域访问,“*”表示允许所有来源进行跨域访问,这里也可以替换为特定的域名或 ip。 很显然,这种方式对非网站拥有人员来说是不能做到的。而且此种方式很容易受到 CSRF 攻击。

浏览器

将 ajax 中的请求设置为 jsonp(专门为了解决跨域问题使用的)

$(function($){
    var url = 'http://www.baidu.com/index';
    $.ajax(url, {
        data: {
                'data': '20180818'
            },
        dataType: 'jsonp',
        crossDomain: true,
        success: fucntion(data) {
                if (data && data.resultcode == '200'){
                    console.log(data.result.today);
                }
            }
        });
});

Last update: November 9, 2024