JSONP && CORS

作者: YangJeremy | 来源:发表于2018-03-27 22:42 被阅读0次

跨域必须先知道同源策略。

JSONP

html中script标签可以引入其他域下的js,比如引入线上的jquery库。利用这个特性,可实现跨域访问接口。需要后端支持

echo $cb . '&&' . $cb . '(' . json_encode($ret) . ')';
定义数据处理函数_fun
创建script标签,src的地址执行后端接口,最后加个参数callback=_fun
服务端在收到请求后,解析参数,计算返还数据,输出 fun(data) 字符串。
fun(data)会放到script标签做为js执行。此时会调用fun函数,将data做为参数。
举个例子:
1.script标签会把资源下载下来作为资源取运行


1

2.routerjs这是后端接口


后端接口

3.在页头创建script标签然后去加载


3

4.这就是里面的数据


这就是里面的数据.jpg

5.这是后端的处理,去解析callback这个参数


5

6.当然我们可以进行一下扩展


6

7.让他加载之后又立刻删掉


7

这就是JSONP的过程。

CORS

CORS 全称是跨域资源共享(Cross-Origin Resource Sharing),是一种 ajax 跨域请求资源的方式,支持现代浏览器,IE支持10以上。 实现方式很简单,当你使用 XMLHttpRequest 发送请求时,浏览器发现该请求不符合同源策略。
会给该请求加一个请求头:Origin,后台进行一系列处理,如果确定接受请求则在返回结果中加入一个响应头:Access-Control-Allow-Origin; 浏览器判断该相应头中是否包含 Origin 的值,如果有则浏览器会处理响应,我们就可以拿到响应数据,如果不包含浏览器直接驳回,这时我们无法拿到响应数据。所以 CORS 的表象是让你觉得它与同源的 ajax 请求没啥区别,代码完全一样。

相关文章

  • spring boot CORS 支持

    一、Web 开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS 等等 CORS 与 JSONP...

  • 解决跨域请求的几种常用方式

    总结: jsonp / iframe / window.name / cors / img.src jsonp ...

  • 跨域

    1:CORS2:JSONP

  • Ajax下

    一、cors跨域请求 二、jsonp百度搜索的例子 jsonp.html jsonp.js

  • 跨域

    1、Json jsonp 只能支持 get 请求; 2、cors cors 可以支持多种请求。cors 并不需要前...

  • 跨域【详解】

    本篇有四种方法跨域:CORS、JSONP、降域、window.postMessage() 1. CORS CORS...

  • Ajax跨域请求_cors

    cors 内容回顾:restful 规范10个 除了 jsonp(它只可以发 get 请求), 还有cors(可以...

  • 跨域

    解决跨域访问,最常用有三种办法 CORS jsonp 代理 CORS cross origin resource ...

  • CORS and JSONP

    reference teacher run same-origin policy: 1.protocol2.do...

  • JSONP && CORS

    跨域必须先知道同源策略。 JSONP html中script标签可以引入其他域下的js,比如引入线上的jquery...

网友评论

    本文标题:JSONP && CORS

    本文链接:https://www.haomeiwen.com/subject/vmdecftx.html