| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 跨域及解决方法(jsonp和cors) -> 正文阅读 |
|
[大数据]跨域及解决方法(jsonp和cors) |
出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port) 当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域 这样会出现以下三种问题 【1】无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB 【2】无法接触非同源网页的 DOM 【3】无法向非同源地址发送 AJAX 请求 跨域解决方法. 我们先模拟出现跨域问题的场景? 创建目录如下 |-public public/index.html
?server.js
测验以下 ? 浏览器向web服务器发起http请求时 ,如果同时满足以下 (1)请求响应双方url不同源。 双方url:发出请求所在的页面 与 所请求的资源的url 同源是指: 以下就是不同源的: 从 网络中不同源的请求有很多。 (2)请求类型是xhr请求。就是常说的ajax请求。不是请求图片资源,js文件,css文件等 (3)浏览器觉得不安全。跨域问题出现的基本原因是浏览器的同源策略。同源策略是一个重要的安全策略,它限制一个origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。 注意,错误是发生在浏览器端的。请求是可以正常从浏览器发到服务器端,服务器也可以处理请求,只是返回到浏览器端时出错了。 解决方法两种 jsonpJSON with Padding,是一种借助于
步骤如下
让接口返回函数调用表达式,并传入数据server.js
后端接口的返回值是一个特殊的字符串: 一个刻意拼写的js函数调用语句。 前端补充代码:
JSONP实操掌握JSONP在实际开发中的使用 前端使用jQuery ,后端使用nodejs + express。 注意前后端都需要改动代码。 ? jQuery封装的jsonpjquery中的ajax已经封装好了的jsonp方式,可以直接使用。 具体来说就是给ajax请求添加一个dataType属性,其值为"jsonp"。 示例如下: 前端页面:
后端接口 express框架已经提供了一个名为jsonp的方法来处理jsonp请求:
CORSCORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。 CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10(ie8通过XDomainRequest能支持CORS)。{也就是传说中的不适配IE6 7 8 9} 参考https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS 通过在被请求的路由中设置header头,可以实现跨域。 ?
?
使用cors?
jsonp:
cors:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 20:09:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |