0%

为什么会出现跨域

安全
浏览器同源策略
同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。
cookie
CSRF攻击
XSS攻击

跨域在chrome浏览器下的表现

服务器跨域设置

服务器可以设置只允许某个域名下的程序访问
Cross Origin Resource Share (CORS)
CORS是一个跨域资源共享方案,为了解决跨域问题,通过增加一系列请求头和响应头,规范安全地进行跨站数据传输
请求头主要包括
Origin Origin头在跨域请求或预先请求中,标明发起跨域请求的源域名。
响应头主要包括
Access-Control-Allow-Origin Access-Control-Allow-Origin头中携带了服务器端验证后的允许的跨域请求域名,可以是一个具体的域名或是一个*(表示任意域名)。

跨域解决方案

  1. JSONP
  2. 空iframe加form
  3. CORS跨域资源共享(Cross-origin resource sharing)
  4. nginx代理

fetch 和 xhr

withCredentials

HTTP 请求方式有许多种,有些请求会触发 CORS 预检请求。“需预检的请求”会使用 OPTIONS 方法发起一个预检请求到服务器,以获知服务器是否允许该实际请求。
对于跨域请求浏览器一般不会发送身份凭证信息。如果要发送凭证信息,需要设置 XMLHttpRequest 的 withCredentials 属性为 true:withCredentials: true。此时要求服务器的响应信息中携带 Access-Control-Allow-Credentials: true,否则响应内容将不会返回。
对于携带身份凭证的请求,服务器不得设置 Access-Control-Allow-Origin 的值为“*”。因为请求头携带了 Cookie 信息。要将 Access-Control-Allow-Origin 的值设置为域名。
另外,响应头中也携带了 Set-Cookie 字段,尝试对 Cookie 进行修改。如果操作失败,将会抛出异常。
————————————————
版权声明:本文为CSDN博主「__Amy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sansan_7957/article/details/79714486

https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/withCredentials

webpack 代理设置

参考:
https://segmentfault.com/a/1190000017867312
https://segmentfault.com/a/1190000015597029

调用天地图api跨域的问题

自2019年1月1日,访问天地图api需要使用token,一个token只能在一个域名下使用,开发时最好每人申请一个token,自己用自己的token就不会有跨域问题了

问题描述

使用token调用天地图api获取地图瓦片时出现跨域问题

问题产生原因

多个域名使用同一个token调用天地图api

解决方案

每个域名申请一个token

如果文件已经加入版本控制,再加入.gitignore文件也还是会提交到版本控制。
这时需要首先确保文件已经加入.gitignore文件
然后使用如下命令:

  1. 文件
    1
    git rm --cached filename
  2. 文件夹
    1
    git rm -r --cached foldername

安装

  1. 去官网下载安装
  2. 使用 homebrew 安装

启动服务

1
$ mysql.server start # 或去设置里搜索 MySQL 启动

设置密码

homebrew安装默认是没有密码的

1
2
3
4
5
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '123456';
Query OK, 0 rows affected (0.10 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

  1. canvas
  2. indexDB
  3. HLS直播
  4. 小程序
  5. GIS地图
  6. echart
  7. vue

问题描述

windows下git报错warning: LF will be replaced by CRLF in ***. The file will have its original line endings in your working directory.

问题原因

windows下和linux(mac)下换行符不一致导致的

解决方法

1
$ git config --global core.autocrlf false  //禁用自动转换    

参考文档
防火墙设置
查看所有打开的端口: firewall-cmd –zone=public –list-ports
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld

关闭selinux

#修改配置文件 vi /etc/selinux/config

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

:wq! #保存退出

#使配置立即生效 setenforce 0

iptables

参考文档
https://www.cnblogs.com/moxiaoan/p/5683743.html

参考文档https://www.cnblogs.com/24la/p/mariadb-remoting-access.html

首先配置允许访问的用户,采用授权的方式给用户权限

1
GRANT ALL PRIVILEGES ON . TO ‘root‘@’%’IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
说明:root是登陆数据库的用户,123456是登陆数据库的密码,*就是意味着任何来源任何主机反正就是权限很大的样子。

最后配置好权限之后不应该忘记刷新使之生效

1
flush privileges;
再次访问就可以了吧。