HTTP 跨域资源共享

一、HTTP 跨域资源共享

  • 1.跨域访问
    • 1.具有 src、href 属性的标签

    • 2.jsonp

    • 3.CORS

  • 2.CORS

         CORSCross-Origin Resource Sharing跨域资源共享,允许服务器声明那些源站有权限访问那些资源;(为HTTP头添加头部信息以实现跨域资源共享;)

    • 1.简单请求
    • 2.预检请求
    • 3.认证请求

二、HTTP 简单请求

  • HTTP 简单请求应满足一下三种要求:
    • 1.简单请求方法
      • GET

      • POST

      • HEAD

    • 2.请求头部信息字段
      • 不允许设置: AcceptAccept-LanguageContent-LanguageContent-Type
    • 3.Content-Type 设置权限
      • 仅限:

        • text/plain

        • multipart/form-data

        • application/x-www-form-urlencoded

    Tip: 跨域请求与其他浏览器发出的跨域请求并无一致。若服务器未返回正确响应首部,则请求放不会收到任何数据。因此,那些不允许跨域请求的网站无需为这一新的HTTP访问控制特性担心;

  • 请求消息事例

    在这里插入图片描述

  • 响应消息事例

    在这里插入图片描述

三、HTTP 预检请求

  • 满足任意一下任一请求之一,进行预检请求:
    • 1.请求方法
      • PUT

      • DELETE

      • CONNECt

      • OPTIONS

      • TRACE

      • PATH

    • 2.请求头部信息字段
      • 不允许设置: AcceptAccept-LanguageContent-LanguageContent-Type
    • 3.Content-Type 设置权限
      • 仅限:
        • text/plain
        • multipart/form-data
        • application/x-www-form-urlencoded

    Tip: 预检请求要求必须首先使用 OPTIONS 方法发起一个预检请求到服务区,以获知服务器是否允许该实际请求;预检请求可以不免跨域请求对服务器的用户数据产生预期的影响。

  • 请求消息事例

    在这里插入图片描述

  • 响应消息事例

    在这里插入图片描述

四、HTTP 认证请求

  • 认证请求

        对于跨域 XMLHTTPRequest 请求,浏览器不会发送身份认证信息,需要发送认证时,需要设置 XMLHTTPRequest 特殊标志:

    xmlHttpRequest.withCredentials = true;(默认为false)

    Tip: 服务器端的响应中没有携带 Access-Control-Allow-Credentials: true,则浏览器将不会把响应内容返回给请求的发送者;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值