前端跨域方式有哪些?如何支持跨域请求并解析jsonp

2025-03-23 11:50:02 0

前端跨域方式有哪些?如何支持跨域请求并解析jsonp

本文目录

前端跨域方式有哪些

处理跨域方法一——JSONP1.JSONP原理利用script元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 数据。JSONP请求一定需要对方的服务器做支持才可以。2.JSONP和AJAX对比JSONP和AJAX相同,都是客户端向服务器端发送请求,从服务器端获取数据的方式。但AJAX属于同源策略,JSONP属于非同源策略(跨域请求)3.JSONP优缺点JSONP优点是兼容性好,可用于解决主流浏览器的跨域数据访问的问题。缺点是仅支持get方法具有局限性。4.JSONP的流程(以第三方API地址为例,不必考虑后台程序)声明一个回调函数,其函数名(如fn)当做参数值,要传递给跨域请求数据的服务器,函数形参为要获取目标数据(服务器返回的data)。创建一个服务器接收到请求后,需要进行特殊的处理:把传递进来的函数名和它需要给你的数据拼接成一个字符串,例如:传递进去的函数名是fn,它准备好的数据是fn()。最后服务器把准备的数据通过HTTP协议返回给客户端,客户端再调用执行之前声明的回调函数(fn),对返回的数据进行操作。处理跨域方法二——CORS1.CORS原理整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。2.CORS优缺点CORS要求浏览器(》IE10)和服务器的同时支持,是跨域的根本解决方法,由浏览器自动完成。优点在于功能更加强大支持各种HTTP Method,缺点是兼容性不如JSONP。处理跨域方法三——WebSocketWebsocket是HTML5的一个持久化的协议,它实现了浏览器与服务器的全双工通信,同时也是跨域的一种解决方案。WebSocket和HTTP都是应用层协议,都基于 TCP 协议。但是 WebSocket 是一种双向通信协议,在建立连接之后,WebSocket 的 server 与 client 都能主动向对方发送或接收数据。同时,WebSocket 在建立连接时需要借助 HTTP 协议,连接建立好了之后 client 与 server 之间的双向通信就与 HTTP 无关了。原生WebSocket API使用起来不太方便,我们使用Socket.io,它很好地封装了webSocket接口,提供了更简单、灵活的接口,也对不支持webSocket的浏览器提供了向下兼容。处理跨域方法四——postMessage如果两个网页不同源,就无法拿到对方的DOM。典型的例子是iframe窗口和window.open方法打开的窗口,它们与父窗口无法通信。HTML5为了解决这个问题,引入了一个全新的API:跨文档通信 API(Cross-document messaging)。这个API为window对象新增了一个window.postMessage方法,允许跨窗口通信,不论这两个窗口是否同源。postMessage方法的第一个参数是具体的信息内容,第二个参数是接收消息的窗口的源(origin),即“协议 + 域名 + 端口“。也可以设为*,表示不限制域名,向所有窗口发送。

如何支持跨域请求并解析jsonp

跨域的安全限制都是对浏览器端来说的,服务器端是不存在跨域安全限制的。

浏览器的同源策略限制从一个源加载的文档或脚本与来自另一个源的资源进行交互。

如果协议,端口和主机对于两个页面是相同的,则两个页面具有相同的源,否则就是不同源的。

如果要在js里发起跨域请求,则要进行一些特殊处理了。或者,你可以把请求发到自己的服务端,再通过后台代码发起请求,再将数据返回前端。

这里讲下使用jquery的jsonp如何发起跨域请求及其原理。

先看下准备环境:两个端口不一样,构成跨域请求的条件。

获取数据:获取数据的端口为9090

请求数据:请求数据的端口为8080

1、先看下直接发起ajax请求会怎么样

下面是发起请求端的代码:

《%@ page pageEncoding=“utf-8“ contentType=“text/html;charset=UTF-8“  language=“java“ %》《html》《head》    《title》跨域测试《/title》    《script src=“js/jquery-1.7.2.js“》《/script》    《script》        $(document).ready(function () {                        $(“#btn“).click(function () {                $.ajax({                    url: ’http://localhost:9090/student’,                    type: ’GET’,                    success: function (data) {                        $(text).val(data);                    }                });            });                    });    《/script》《/head》《body》    《input id=“btn“ type=“button“ value=“跨域获取数据“ /》    《textarea id=“text“ style=“width: 400px; height: 100px;“》《/textarea》《/body》《/html》

ajax什么是跨域请求

简单点讲我在我家里躺着,还能一只手去你家里拿东西,这就是跨域。

// 假设我家是www.baidu.com,你家呢就是www.qq.com,当然这个请求不会成功,// 浏览器运行会告诉你cross-domain之类的信息,也就是跨域。你没办法不通过别人允许就去别人家拿东西var xhr = new XMLHttpRequest()xhr.open(’GET’, ’http://www.qq.com/’, true)xhr.send()// 报错//Failed to load http://www.qq.com/: No ’Access-Control-Allow-Origin’ header is present on the requested resource. Origin ’http://localhost’ is therefore not allowed access.

jsonp跨域请求怎么设

一、同源策略

要理解跨域,先要了解一下“同源策略”。所谓同源是指,域名,协议,端口相同。所谓“同源策略“,简单的说就是基于安全考虑,当前域不能访问其他域的东西。

一些常见的是否同源示例可参照下表:

在同源策略下,在某个服务器下的页面是无法获取到该服务器以外的数据的。例如我们在自己的网站通过ajax去获取豆瓣上

ajax跨域请求如何实现

方法一、 采用jsonp (只支持get请求,后端返回的jsonp格式json,后端无需做请求放行操作)

方式二:采用原始ajax (后端需要拦截请求 设置指定路由放行)

Java后端:

方式三: XHR2(XMLHttpRequest Level 2)

需要设置后端请求放行response.setHeader(“Access-Control-Allow-Origin”,”*”);response.setHeader(“Access-Control-Allow-Methods”,”GET,POST”);  1.可以获取服务器端的二进制数据。2.可以友好的提交表单数据3.可以上传文件(内置控制上传进度事件逻辑)4.使用HTML表单来初始化一个FormData对象

javascript开发中jsonp跨域请求是什么意思什么叫跨域为什么用jsonp

跨域是JavaScript出于安全方面的考虑,不允许浏览器在当前访问的域名的页面中的javascript的调用其他域名页面中的对象。跨域请求就是为了解决禁止跨域访问的问题。用jsonp的原因是json是javascript中的对象,而跨域访问中有图片、css、javascript脚本文件等是不限制,因此你可以在页面渲染时动态在《script》标签设置src路径,而这个路径返回回来的就是json对象。

关于网页的跨域请求数据

分两种情况:

一、您有目标网站的修改权限,可以直接使用$.getJSON();

二、您没有目标网站的修改权限,可以使用php的fopen()函数,然后再用jquery的$.get();

两个函数的用法大同小异,根据您的情况,没有银行的修改权限,

  • 那么先做一个php获取银行的汇率,

  • $.get(“get.php“,{“m1“:“货币1“,“m2“:“货币2“},function(data,status){

    //回调函数写这里,比如$(“div“).html(data);

    }):

前端跨域方式有哪些?如何支持跨域请求并解析jsonp

本文编辑:admin

本文相关文章:


什么是跨域业务?如何实现跨域

什么是跨域业务?如何实现跨域

本文目录什么是跨域业务如何实现跨域nginx反向代理后是不是就不跨域了跨域有哪几种方式跨域是指什么因为什么引起的前端解决跨域都有哪些方法如何用nginx实现反向代理什么是跨域业务答:您好,跨域业务是彻底打破地域限制的业务运营新模式,包括跨域

2025年3月30日 15:20

iframe跨域自动登录(如何使用iframe实现跨域写入cookie 并且兼容大部分浏览器)

iframe跨域自动登录(如何使用iframe实现跨域写入cookie 并且兼容大部分浏览器)

本文目录如何使用iframe实现跨域写入cookie 并且兼容大部分浏览器Excel 求助,请教IFRAME框架网页的自动登录跨域访问iframe问题如何单点登录或如何跨域访问iframe内DOM元素iframe怎样解决跨域问题JS跨域访问

2025年2月11日 11:50

更多文章:


python list(python list(range(6))[::2]啥意思)

python list(python list(range(6))[::2]啥意思)

本文目录python list(range(6))[::2]啥意思python中list的大小最大是多少python列表的特点python list[3::-1]是什么意思python中的listpython怎么用listpython中li

2025年2月25日 19:00

accompany的名词(“陪伴”用英语怎么说)

accompany的名词(“陪伴”用英语怎么说)

本文目录“陪伴”用英语怎么说accompany有名词解释吗“陪伴”用英语怎么说陪伴的英文是accompany,音标英 。释义:v.陪同;陪伴;伴随;与…同时发生;(尤指用钢琴)为…伴奏When I will accompany you. 不

2025年3月30日 12:40

服务器安全狗防护验证页面(手机UC浏览器一直跳到服务器安全狗防护页面怎么办)

服务器安全狗防护验证页面(手机UC浏览器一直跳到服务器安全狗防护页面怎么办)

本文目录手机UC浏览器一直跳到服务器安全狗防护页面怎么办您的请求过于频繁,已被网站管理员设置拦截!如何去掉服务器安全狗的 网站访问认证,点击链接后将跳转到访问页面安全狗的404页面,怎么diy或者重新设置成我们自己的404页面您的请求过于频

2025年3月22日 06:50

c语言中null(C语言中NULL是什么意思)

c语言中null(C语言中NULL是什么意思)

本文目录C语言中NULL是什么意思C语言中NULL有什么作用具体用法是什么c语言中null和空格的区别C语言中NULL是如何定义的c语言中null什么意思null在c语言中什么意思C语言中NULL是什么意思在C语言中,NULL和0的值都是一

2025年3月22日 12:50

boxer是什么意思(boxste什么意思)

boxer是什么意思(boxste什么意思)

本文目录boxste什么意思Boxer是什么意思保时捷Boxster名称是什么意思boxste什么意思保时捷Boxster是保时捷公司的一款双门双座中置引擎敞篷跑车. Boxster的意思是根据发动机结构,以及驾驶舱(两座,及敞篷)结构而得

2025年3月24日 01:50

图书馆管理系统用例图(面向对象UML作业 菜鸟级 很急 图书馆管理系统 用例图 类图 顺序图 状态图)

图书馆管理系统用例图(面向对象UML作业 菜鸟级 很急 图书馆管理系统 用例图 类图 顺序图 状态图)

本文目录面向对象UML作业 菜鸟级 很急 图书馆管理系统 用例图 类图 顺序图 状态图用例图 用例图怎么画 图书管理系统用例图(图书馆信息管理系统)这个借还书用例图中“remove reservation”是不是应该extends “len

2025年3月6日 02:40

coremail邮件系统登录(coremail邮件系统怎么使用的,来一个大神教我一下,有安装包也麻烦给我一个)

coremail邮件系统登录(coremail邮件系统怎么使用的,来一个大神教我一下,有安装包也麻烦给我一个)

本文目录coremail邮件系统怎么使用的,来一个大神教我一下,有安装包也麻烦给我一个coremail是什么邮箱coremail邮件系统怎么使用的,来一个大神教我一下,有安装包也麻烦给我一个我有一份中文破解版的软件希望可以帮助你软件特色1、

2025年2月19日 17:20

ora汽车报价(ora汽车是什么牌子的)

ora汽车报价(ora汽车是什么牌子的)

本文目录ora汽车是什么牌子的ora是什么汽车品牌ora汽车是什么牌子的ora汽车是长城欧拉的。欧拉品牌隶属于长城汽车,是中国主流自主车企中第一个独立的新能源汽车品牌。在中国汽车企业中,长城率先将新能源汽车业务作为品牌化管理的独立新能源品牌

2025年3月7日 11:20

html 标签a(HTML a 标签的基本用法和常用属性)

html 标签a(HTML a 标签的基本用法和常用属性)

本文目录HTML a 标签的基本用法和常用属性html a标签 如何控制 宽度 高度html a标签html 中 标签里面的id 和 name 有什么区别html标签作用是什么在定义css时,它的伪选择器包括哪几种HTML中a标签有什么用h

2025年2月28日 16:10

c语言计算1 n阶乘之和(C语言求一到n的阶乘之和,n大于1小于等于16)

c语言计算1 n阶乘之和(C语言求一到n的阶乘之和,n大于1小于等于16)

本文目录C语言求一到n的阶乘之和,n大于1小于等于16C语言求1至n的阶乘和问题用C语言求1到N的阶层 的累加和用c语言编写程序计算1~n的阶乘之和.c语言求1/n的阶乘和C语言求1~n阶乘的和c语言求1到n阶乘的和用递归C语言,计算1到n

2025年2月18日 03:00

android sdk安装失败(android sdk模拟器插件安装失败,提示错误)

android sdk安装失败(android sdk模拟器插件安装失败,提示错误)

本文目录android sdk模拟器插件安装失败,提示错误android sdk怎么安装不了在安装android sdk manager显示安装失败安装android sdk时出现错误手机androidsdk安装失败怎么办安装android

2025年2月26日 20:00

python中文意思(python中,是什么意思)

python中文意思(python中,是什么意思)

本文目录python中,是什么意思python汉化是什么意思python中文叫什么python中,是什么意思python中:1a *= b即为:1a = a*b/=,-=,+=,也都是一样的意思,写起来很方便,比如a自增只需a+=1。pyt

2025年3月1日 04:30

java throwable(java中为何泛型类不能继承Throwable)

java throwable(java中为何泛型类不能继承Throwable)

本文目录java中为何泛型类不能继承Throwablethrowable和Exception的区别(详细一点)java中为何泛型类不能继承Throwable意义,异常发生在底层实现,捕获异常在上层。泛型,用于使用某个类的时候限制相关类型。显

2025年2月17日 09:20

final cut pro官网(官网里免费的 final cut pro 7里的 alpha transitions 在哪下 求步骤截图 谢谢哈)

final cut pro官网(官网里免费的 final cut pro 7里的 alpha transitions 在哪下 求步骤截图 谢谢哈)

本文目录官网里免费的 final cut pro 7里的 alpha transitions 在哪下 求步骤截图 谢谢哈Final Cut Pro要钱吗北京哪有学final cut pro的学校!final cut pro 哪里可以下载如何

2025年2月25日 13:20

onreceive(请问CSocket 类中的 OnReceive()的参数)

onreceive(请问CSocket 类中的 OnReceive()的参数)

本文目录请问CSocket 类中的 OnReceive()的参数请问,关于安卓广播接收者的问题,安卓中onReceive方法中的参数context和intent请问CSocket 类中的 OnReceive()的参数CAsyncSocket

2025年3月30日 23:40

centos教程(centos7安装教程)

centos教程(centos7安装教程)

本文目录centos7安装教程怎样安装Centos系统如何网络安装系统centos 7腾讯云centos如何搭建centos怎么安装中文centos 6.6系统字符化安装详细的图文教程win7 64下安装centos7时怎么手动分区教程,求

2025年3月19日 02:00

ireader light2(Kindle和iReader阅读器,哪个比较好用)

ireader light2(Kindle和iReader阅读器,哪个比较好用)

本文目录Kindle和iReader阅读器,哪个比较好用相比kindle,iReader Light有哪些亮点Kindle和iReader阅读器,哪个比较好用巧了,我都用过,入的是ireader Light白色版,然后出了换了Kindle

2025年2月12日 18:30

softmax(MATLAB如何查看softmax分类器中各类概率)

softmax(MATLAB如何查看softmax分类器中各类概率)

本文目录MATLAB如何查看softmax分类器中各类概率数字图像中的softmax是什么意思softmax回归代价函数为什么是这样的svm和softmax 哪个好Softmax和sigmoid在gpu上的计算开销哪个更大机器学习中soft

2025年3月11日 11:20

insert添加语句(insert into语句)

insert添加语句(insert into语句)

本文目录insert into语句insert into语句是什么关于数据库的insert插入语句insert into 语句是什么insert插入怎么用insert语句怎么写才正确insert into语句INSERT INTO是sql数

2025年2月17日 19:50

css clear(css中clear是什么意思不懂,请高手解答)

css clear(css中clear是什么意思不懂,请高手解答)

本文目录css中clear是什么意思不懂,请高手解答css样式表中clear的意思css clear 样式怎么写css中clear属性是什么意思css的clear属性到底是怎么解释的css中clear的什么作用CSS clear属性,,,看

2025年2月9日 17:50

近期文章

argument type mismatch(type mismatch什么意思)
2025-04-04 11:10:02
本站热文

harbor,port,pier的区别?谁能解释“harbour“(港口)与“pier“(码头)的区别
2025-02-22 17:40:03 浏览:17
ibatis foreach(ibatis 批量update操作)
2025-02-10 23:40:06 浏览:7
endless rain(endless rain表达什么情感)
2025-02-14 06:00:02 浏览:6
标签列表

热门搜索