同源策略和跨域请求

1,什么是同源策略,跨域请求

1.浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域.

2.只要协议、域名、端口有任何一个不同,都被当作是不同的域,之间的请求就是跨域操作。

2,解决方案

1,jsonp

1, script标签会把请求文件里所有的内容都当做字符串当作JS代码处理。
script标签不受同源策略影响,想请求谁的服务器都行

2,cors跨域 别人服务器允许自己访问

在服务器端设置允许访问自己的服务器
res.header(‘Access-Control-Allow-Origin’, ‘http://localhost:3001’);

header(…) 允许那些域名访问

res.header(‘Access-Control-Allow-Methods’, ‘GET,PUT,POST,DELETE’);
header(…) 允许哪些请求方式

res.header(‘Access-Control-Allow-Headers’, ‘Content-Type’);

header(…) 允许哪些请求头

3,代理(正向代理)

访问代理服务器,代理服务器访问目标服务器,服务器和服务器之间不存在同源策略

例子:
使用nignx代理服务器 切换5.4.45nignx服务器

  1. 打开 phpstudy 窗口
    => 点击切换版本
    => 点击 php5.4.xxx + nginx

  2. 打开 phpstudy 窗口
    => 点击其他选项菜单
    => 点击打开配置文件
    => 点击 nginx-conf(config)
    -> 大概在 56 行左右有一个 server
    -> 顺着开始括号找到 server 的闭合大括号
    -> 在这个闭合大括号的上面一行书写代理配置
    => 代理配置
    -> /gx 是你们自己定的, 些什么都可以, 这个就是代理标识符
    -> 斜线也是必须要有
    -> {} 里面的那个地址, 就是你要跨域请求的地址(目标服务器的地址)
    -> 最后的分号必须有
    location = /gx {
    proxy_pass http://127.0.0.1/server/proxy.php;
    }
    -> 修改完毕以后, 一定要重启服务器
    => 当你在 ningx 服务器上发送请求
    -> 只要请求你自己写的 代理标识符
    -> 那么就会由 nginx 服务器来帮你转发请求到 proxy_pass 地址

    注意:

    • 当你切换到 nginx 服务器以后
    • 不管是 html 文件还是 php 文件, 都不能用中文了
      => 只要是中文就报错了
      */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值