跨域
跨域¶
统计信息:字数 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