解决跨域问题

简介: 解决跨域问题

解决跨域问题

一、跨域问题的产生的原因

浏览器安全问题:浏览器的同源策略是浏览器为安全性考虑实施的非常重要的安全策略。从一个域上加载的脚本不允许访问另外一个域的文档属性,当前的地址下去访问浏览器上的另外一个地址不允许我们访问浏览器阻止我们访问

  • 跨域:指的是从一个域名去请求另外一个域名的资源即跨域请求
  • 跨域时,浏览器不能执行其他域名网站的脚本是由网站的同源策略造成的是浏览器施加的安全限制。跨域的严格一点就是只要协议、域名、端口有任何一个不同就被当做是跨域

二、同源策略

  • 协议、域名、端口相同就是同源可以互相访问
  • 协议、域名或者端口有一个不同就是非同源 非同源不可以直接访问

三、案例

跨域问题

四、解决跨域的几种方法

(一)、后台代理

PHP访问:产生跨域的原因是浏览器的同源策略不能访问,我们让PHP访问资源资源把访问的结果给PHP页面我们访问PHP(PHP中间人)

语法:file_get_contnets('网址');

(二)、跨域资源共享(CORS)

普通跨域请求:只需要服务端设置Access—Control—Allow—Origin即可前端无需设置CORS是一个W3C标准,全称是“跨域资源共享(Cross-origin resource-sharing)

  • 它允许浏览器向跨源服务器发出XMLHttpRequest请求,从而克服了AJAX只能同源发送请求的限制
  • 实现CORS主要在于服务器的设置关键在于服务器HTTP响应报文首部的设置前端部分大致还是跟原来法AJAX
    请求没什么区别只是需要对AJAX进行一些相关的设置

资源共享 设置允许哪些网站访问这个接口

一、允许所有的网站访问 后台配置:请求头

PHP:header("Access-Control-Allow-Origin:*");

二、允许部分满足条件的网站

header("Access-Control-Allow-Origin:www.abc.com,baidu.com");

三、proxy代理

  • 原理:让代理服务器请求目标地址因为请求是在服务端进行的,在服务端不存在跨域从而解决跨域问题
  • 实现:将原地址绑定在代理服务器下 让代理服务器发送请求

四、jsopn跨域

  • 动态创建script标签利用script标签的src属性可以任何域下的js脚本通过这个特性(也可以说是漏铜)服务器端不再返回json格式,而是返回一段调用某个函数的js代码在src中进行了调用这样就实现网络跨域
  • 跨域请求:只有get请求

代码演示


相关文章
|
JSON 前端开发 网络协议
前端知识点-----跨域
前端知识点-----跨域
529 0
|
IDE 开发工具 git
如何使用Git命令提交项目代码
如何使用Git命令提交项目代码
3927 0
如何使用Git命令提交项目代码
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `<appender>` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `<logger>` 和 `<root>` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
3242 1
|
JSON 前端开发 安全
【潜意识java】前后端跨域问题及解决方案
本文深入探讨了跨域问题及其解决方案。跨域是指浏览器出于安全考虑,限制从一个域加载的网页请求另一个域的资源。
4581 0
|
安全 JavaScript 前端开发
跨域问题如何解决
跨域问题是指浏览器同源策略限制了不同域名之间的资源访问。解决方法包括:1. CORS(跨域资源共享):服务器设置Access-Control-Allow-Origin响应头;2. JSONP:利用script标签不受同源策略限制的特点;3. 代理服务器:通过后端代理转发请求。
|
存储 JSON JavaScript
跨域问题
跨域问题
384 1
|
存储 安全 测试技术
数组越界:深入理解、危害与防范
数组越界:深入理解、危害与防范
3826 18
|
12月前
|
网络协议 安全
跨域怎么处理 ?
跨域怎么处理 ?
220 0
|
Web App开发 JavaScript 开发者
跨域处理
跨域处理
269 0