目录
跨域访问
同源:
XMLHttpRequest.withCredentials
XMLHttpRequest.withCredentials 属性是一个
Boolean
类型,它指示了是否该使用类似cookies,authorization headers(头部授权)或者TLS客户端证书这一类资格证书来创建一个跨站点访问控制(cross-siteAccess-Control
)请求。在同一个站点下使用withCredentials属性是无效的。
此外,这个指示
也会被用做响应中
cookies 被忽视的标示。默认值是false。如果在发送来自其他域的XMLHttpRequest请求之前,未设置
withCredentials
为true,那么就不能为它自己的域设置cookie值。而通过设置withCredentials
为true获得的第三方cookies,将会依旧享受同源策略,因此不能被通过document.cookie或者从头部相应请求的脚本等访问。注: 永远不会影响到同源请求
Note: 不同域下的
XmlHttpRequest
响应,不论其Access-Control-
header 设置什么值,都无法为它自身站点设置cookie值,除非它在请求之前将withCredentials
设为true。
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://example.com/', true);
xhr.withCredentials = true;
xhr.send(null);
Ajax:
withCredentials
Access-Control-Allow-Credentials:
header("Access-Control-Allow-Credentials: true"); //允许跨域上传
php 解决跨域问题
header('Access-Control-Allow-Origin:http://www.***.com');
header("Access-Control-Allow-Credentials:true");
header("Access-Control-Allow-Headers", "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
$.ajax({
url: a_cross_domain_url,
// 将XHR对象的withCredentials设为true
xhrFields: {
withCredentials: true
}
});
解决方法:
1、在java服务器端的filter或者servlet里面添加
response.setHeader("Access-Control-Allow-Origin", "*");
2、如果请求的url是aspx页面,则需要在aspx页面中添加代码
Response.AddHeader("Access-Control-Allow-Origin", "*");
3、如果请求的url是PHP页面
header("Access-Control-Allow-Origin: *");
4、如果请求的url是静态的html页面,则需要在页面中添加meta标签代码:
<meta http-equiv="Access-Control-Allow-Origin" content="*" />
// 指定允许其他域名访问
header('Access-Control-Allow-Origin:*');
// 响应类型
header('Access-Control-Allow-Methods:POST');
// 响应头设置
header('Access-Control-Allow-Headers:x-requested-with,content-type');
CSS单位——rem , em
在css中单位长度用的最多的是px、em、rem,这三个的区别是:
px是固定的像素,一旦设置了就无法因为适应页面大小而改变。
em和rem相对于px更具有灵活性,他们是相对长度单位,意思是长度不是定死了的,更适用于响应式布局。
对于em和rem的区别一句话概括:em相对于父元素,rem相对于根元素。
rem中的r意思是root(根源)。
算法学习资料
Js 手动插入meta标签和script标签
// 插入 meta 标签
var oMeta = document.createElement('meta');
oMeta.content = 'width=device-width, initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0, user-scalable=0';
oMeta.name = 'viewport';
document.getElementsByTagName('head')[0].appendChild(oMeta);
// 插入 script 标签
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "index.js";
document.getElementsByTagName('head')[0].appendChild(script);
H5点击复制文本
const btn = document.querySelector('#replication');
//按钮点击
btn.addEventListener('click',() => {
const input = document.createElement('input');
document.body.appendChild(input);
//文本内容:document.getElementById('recommended').innerHTML
input.setAttribute('value', document.getElementById('recommended').innerHTML);
input.select();
if (document.execCommand('copy')) {
document.execCommand('copy');
console.log('复制成功');
success()
}
document.body.removeChild(input);
})