实现跨域访问

同源策略

为了保证用户数据安全 防止恶意网站窃取数据

同源策略 三个行为限制:

​ Cookie、LocalStorage、indexDB无法读取

​ DOM无法获取

​ AJAX请求不能发送

在安全的同时也有了许多的不方便

同源:协议相同、域名相同、端口号相同

域名

访问的url地址:网络协议+域名(IP地址)+端口号+资源路径

​ 同源:网络协议相同、域名相同、端口号相同

​ 不同源:任意一个不一样

​ 域名不相同:完全跨域

​ 域名相同,端口不同:跨子网

互联网默认规则:同源策略(不允许跨域访问)

常见跨域方法

html可跨域标签 < link >、< script>、< img>、< iframe> 这些标签就直接可以跨域 就是说你只能引入其他不同源的网站url等 因为 他们都有一个属性src用于引入路径的

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><img src="http://project_h.change.tm/uploads/200513/1589331065.png?x-oss-process=image/resize,m_fill,h_48" alt="">
</body>
</html>

JSONP是什么

用于解决主流浏览器的跨域问题

利用script元素的开发策略实现的解决跨域问题 就是利用了script标签的src

$.getJSON()方法

jQuery中的$.getJSON()方法允许使用JSON形式的回调函数来加载其他网域的JSON数据

$.getJSON('http://127.0.0.1:8888?callback=?',function(data){consle.log(data);
})

注意:callback=?中的?是jQuery将他自动替换为正确的函数名(jQuery底端自动生成) 这个生成的函数名是每次不一样的

html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body></body>
<script src="jquery-1.12.4.js"></script>
<script>//在getJSON中  也是有回调函数的  只不过是个匿名函数  因为是匿名函数 所有 不能直接指定他的函数名  只能让jQuery自己生产$.getJSON('http://127.0.0.1:8888?callback=?',function(data){console.log(data)});</script>
</html>

js

const http = require('http');
const hostname = '127.0.0.1';
const port = 8888;
const server = http.createServer((req,res) => {var url = req.url;var urlObj = require('url').parse(url);//解析发过来的请求  返回一个url对象var functionName = urlObj.query.split('&')[0].split('=')[1];//获得对象下的某有个属性   split字符串分割 分割方式是括号中传入的参数res.statusCode = 200;res.setHeader('Content-Type','text/plain');//因为用的$.getJSON 回调函数是个匿名函数 不知道他的函数名//在req中会接收客户端所有的请求  这里面就会有jQuery自动生成的函数名res.end(functionName+'({"msg":"xxxxxxx"})');
});server.listen(port,hostname,() => {console.log('servering....')
})

实现跨域访问---同源策略 、常见跨域方法相关推荐

  1. [ecshop 经验 ]transport.js run error 68ecshop 小京东 火狐提示 同源策略和跨域访问 68ecshop

    transport.js run error 68ecshop 小京东 transport.js run error 68ecshop 小京东 火狐提示 同源策略和跨域访问  cros access ...

  2. websocket中发生数据丢失_tcp协议;websocket协议;同源策略和跨域

    tcp协议 为什么连接的时候是三次握手,关闭的时候却是四次握手? 答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文.其中ACK报文是用来应答的,SYN报 ...

  3. gorilla websocket无法跨域_聊聊浏览器同源策略与跨域方案详解

    开发出高性能的 Web 应用固然重要,但安全问题也不容小觑.本文我们继续以 HTTP 为线索,展开来讲一讲浏览器安全相关的同源策略. 浏览器的同源策略(Same Origin Policy) 源(Or ...

  4. Django - - 进阶 - - 同源策略和跨域解决方案

    目录 同源策略 一个源的定义 同源策略是什么 举个例子 jQuery中getJSON方法 JSONP应用 1, 同源策略 1.1 一个源的定义 如果两个页面的协议,端口(如果有指定)和域名都相同,则两 ...

  5. 服务器安全:浏览器同源策略与跨域请求、XSS攻击原理及防御策略、如何防御CSRF攻击

    主要包括 浏览器同源策略与跨域请求 XSS攻击原理及防御策略 如何使用SpringSecurity防御CSRF攻击 CC/DDOS攻击与流量攻击 什么是SSL TLS HTTPS? 一.浏览器的同源策 ...

  6. ajax背景、ajax对象、ajax状态、ajax与http、ajax请求数据接口、同步与异步、ajax请求XML数据、封装ajax函数、artTemplate简介、同源策略和跨域请求、JSONP

    AJAX简介: ajax背景: 1.AJAX(Asynchronous JavaScript And Xml)异步的 JavaScript 和 XML:ajax是浏览器提供的一套API,最早出现在谷歌 ...

  7. 同源策略和跨域解决方案

    同源策略 一个源的定义 如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的源. 举个例子: 下表给出了相对http://a.xyz.com/dir/page.html同源检测的示 ...

  8. [CORS:跨域资源共享] 同源策略与JSONP

    Web API普遍采用面向资源的REST架构,将浏览器最终执行上下文的JavaScript应用Web API消费者的重要组成部分."同源策略"限制了JavaScript的跨站点调用 ...

  9. 同源策略和跨域请求解决方案

    一.一个源的定义 如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的源. 举个例子: 下表给出了相对http://a.xyz.com/dir/page.html同源检测的示例: ...

最新文章

  1. 获取 一个文件 在沙盒Library/Caches/ 目录下的路径
  2. 业务知识——Logger日志打印规范
  3. mybatis-plus学习记录(详细)
  4. Request Header Or Cookie Too Large
  5. operator.ne_Python operator.ne()函数与示例
  6. HTML DOM教程 19-HTML DOM Button 对象
  7. 文件和目录操作命令(19 个)--14.dirname
  8. JNA-Java跨平台调用的利器
  9. 解决 Elastic Search 的 Fast Vector Highlighting (FVH) 策略无法高亮 nested 数据类型
  10. 中文 APB Artist Sessions Presents- SHAUN BARRETT
  11. 计算机改考408的学校,2020考研 河北工业大学计算机改考408
  12. 物联网萤石云获取登录的accessToken工具类
  13. 英伟达守望先锋巡回赛开启 上海/深圳/沈阳/重庆英雄齐聚
  14. 手机在下载文件时乱码问题
  15. D-S证据理论的简要介绍
  16. 企业基本财务指标计算
  17. 可解释的机器学习(XML)概览
  18. “孝”是稍纵即逝的眷恋,“孝”是无法重视的幸福
  19. 李开复给中国学生的第一封信
  20. OpenCV--边缘保留滤波(EPF)

热门文章

  1. matlab pdist如何实现,在MATLAB版本7中相当于pdist2
  2. 2020年计算机一级B押题,2021年全国计算机一级选择题真题押题.doc
  3. Android大事记(不断更新中)
  4. html获取url参数值,js获取url中参数值的两种方法
  5. 牛客网---Java题库(11~20)
  6. 搭建自己的博客(二十六):优化点赞功能,并添加模态登录框
  7. 两种进入容器的方法 - 每天5分钟玩转 Docker 容器技术(23)
  8. 带进度条的文件复制。
  9. 算法导论第10章习题
  10. 转:TC35/TC35I/MC35I短信AT指令实例