什么是JS跨域访问

作者: lixiaochi | 来源:发表于2017-08-24 16:40 被阅读0次

一、什么是跨域

跨域是指从一个域名的网页去请求另一个域名的资源。比如:A上的页面获取B上的资源。

概念:只要协议、主机、端口有任何一个不同,都被当作是不同的域。

出于安全考虑,浏览器会限制从脚本内发起的跨域HTTP请求。

二、如何实现跨域访问

解决方案:

  • JSONP
  • CORS
  • postMessage等

比较常用的是CORS(跨域资源共享)

跨域资源共享( CORS )机制允许 Web 应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行。浏览器支持在 API 容器中(例如 XMLHttpRequest 或 Fetch )使用 CORS,以降低跨域 HTTP 请求所带来的风险。

服务器端对于CORS的支持,主要就是通过前后端HTTP HEADER设置Access-Control-Allow-Origin来进行的。如果浏览器检测到相应的设置,就可以允许Ajax进行跨域的访问。

1. 简单模式(请求方法是 GET / POST / HEAD)

  • 目标服务器在响应头(HTTP HEADER)里添加
    Access-Control-Origin:http://xxx.com
    浏览器就会允许http://xxx.com跨域。

  • 如果添加通配符*Access-Control-Origin:*浏览器就会允许所有其他网站跨域。

2. 复杂模式(请求方法是PUT / DELETE / CONNECT / OPTIONS / TRACE / PATCH)

目标服务器在响应头(HTTP HEADER)里添加

Access-Control-Origin: http://xxx.com
Access-Control-Methods: GET, POST, HEAD, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH

浏览器会发两次请求,第一次是OPTIONS请求,询问目标服务器是否允许PUT/PATCH...,如果允许则发真正的请求。

参考链接:

相关文章

  • 什么是JS跨域访问

    一、什么是跨域 跨域是指从一个域名的网页去请求另一个域名的资源。比如:A上的页面获取B上的资源。 概念:只要协议、...

  • Ajax跨域问题解决方案

    想要解决跨域问题,首先要知道为什么会出现跨域问题? 由于JS同源策略的影响,因此js只能访问同域名下的文档。...

  • 2021-02-23

    一、什么是跨域 二、vue.config.js 跨域配置

  • 跨域

    什么是跨域访问 跨域访问,简单来说就是 A 网站的 javascript 代码试图访问 C网站,包括提交内容和获取...

  • 跨域

    跨域 什么是跨域: 解决跨域 通过jsonp原理:在页面引入跨域js和css时,没有存在跨域问题.因此可以动态创建...

  • 跨域

    什么是跨域 跨域指JS不能访问和操作其他域下的资源。它是由浏览器的同源策略造成的,为的是加强浏览器的安全性。同源策...

  • 跨域

    什么是跨域 所谓的域是指:域名端口协议跨域是指:访问不同域的文件 为什么会存在跨域的问题 浏览器对于javascr...

  • 跨域访问的解决方法

    跨域访问是什么,百度一下你就知道。 什么情况下能确定遇到跨域问题了呢? 是使用js向服务起发送的请求 没有返回结果...

  • 使用CORS解决跨域问题

    1.跨域问题 1.1 什么是跨域 跨域是指跨域名的访问,以下情况都属于跨域: 如果域名和端口都相同,但是请求路径不...

  • H5跨域访问

    跨域访问是源于浏览器的同源策略而引申出来的概念 1、先了解什么是同源策略和跨域访问 同源策略、跨域解决方案 - R...

网友评论

    本文标题:什么是JS跨域访问

    本文链接:https://www.haomeiwen.com/subject/vfkedxtx.html