jsonp原理(jsonp原理及简单实现)

 2021-11-18 11:26    77  

对于开发人员来说,离不开API的开发和调用,我们在日常开发中,如果调用了第三方的API,而且此第三方API是以json数据格式返回时,默认是无法直接调用的(比如AJAX方式调用),因为会涉及到跨域问题jsonp原理。如何解决JSON跨域调用呢?那就得用到JSONP!

jsonp原理(jsonp原理及简单实现)

JSON和JSONP的区别最简单的理解:JSON是一种数据格式jsonp原理,而JSONP是一种数据调用的方式。还有一种不严谨的理解:带callback的JSON是JSONP。

由于浏览器的同源策略,a.com上网页是无法和b.com服务器直接沟通的,JSONP就是用来解决浏览器跨域数据访问的jsonp原理。

JSONP的原理分析上面说到了,所有主流浏览器出于安全因素考虑都有同源策略,而HTML中的<script>标签则不受此限制(<script>标签没有跨域限制)!所以我们可以利用这个特性来和第三方进行数据通讯。

JSONP整个工作流程大概如下:

1、调用方页面上使用script标签引用第三方API地址;

2、第三方响应的数据是JSON数据的包装,格式如下:

callback({"name":"susan","age":"22"})3、这样一来,浏览器请求了此API后获取到的实际上是一段JS代码,然后调用callback函数,函数的实参是JSON对象,我们可以在callback函数中进行数据处理。

以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

怎么判断?

题主想问的应该是如何判断一个形式。比如我们看悟空问答的页面其中一个请求:看它的content-type:application/json,很明显这是一个json格式的请求。实际上现在大多数的API数据传输都是采用json形式的。

jsonp原理(jsonp原理及简单实现)

jsonp原理(jsonp原理及简单实现)

Content-Type在代表具体请求中的媒体类型信息。例如上图中的“content-type:application/json”。

jsonp原理(jsonp原理及简单实现)

常见的媒体类型有如下几种:

jsonp原理(jsonp原理及简单实现)

text/html:HTML格式

text/plain:纯文本格式

text/xml:XML格式

image/gif:gif图片格式

image/jpeg:jpg图片格式

image/png:png图片格式

application开头的媒体类型有:

application/xhtml+xml:XHTML格式

application/xml:XML数据格式

application/atom+xml:Atom XML聚合格式

application/json:json数据格式

application/pdf:pdf格式

application/msword:Word文档格式

application/octet-stream:二进制流数据格式(文件下载)

application/x-:表单提交方式

multipart/form-data:文件上传数据格式

我们日常比较常用的就是application/json、application/x-、multipart/form-data三种数据格式进行}

如何区分?浏览器开发者工具下直接可以查看请求的媒体类型

开发中,比如Java语言下采用SpringMVC框架开发,在对象中,request.getHeader("content-type")即可输出请求的媒体类型,可以根据不同的请求类型采取对应的方式解析数据。

本文标签:表单请求判断

原文链接:https://www.xgfox.com/kfbc/34411.html

本文版权:如无特别标注,本站文章均为原创。