jsonp的工作原理
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--
src 属性他自带有跨域功能,浏览器没有限制。
-->
<script>
function jsonp(info) {
//已经帮我转成对象。
console.log(info);
} /*
* 我的目的是什么:
* http://www.baidu.com/asdfsadf/asdf.php
* 然后这个地址返回,我想把这个返回的数据获取。
* 我的目的是获取第三方网站的资源数据。
*
* */
</script>
<!--
这个标签没有跨域的限制,浏览器没有对这个标签进行一个禁用。 jQuery
//之前这段代码是写在http://www.wu.com
$.ajax({
url:"http://www.baidu.com/asdfasdfasdf",
type:"get", success:function(){ }
})
//假设没有加dataType:jsonp
//这个jQuery 底层默认是去发送一个XMLHttpRequest 的请求
//但是请求的资源是http://www.baidu.com 的资源 ,直接跨域的。
//现在我是dataType:jsonp
//jQuery 底层 var srcipt=document.createElement("srcipt");
//srcipt.src="http://www.baidu.com" //跨域
-->
<script src="http://api.wu.com/api/04jsonp1.php?callback=jsonp"></script>
</head>
<body>
</body>
</html>
跨域:
我在www.xiaoyanzi.com 站点下面的一个页面想去访问 http://www.baidu.com 下面的一个资源.
http://www.xiaoyanzi.com a.html
http://www.baidu.com b.html 1:document
a.html 想访问b.html 下面的元素 顶级域名都不一样。 http://www.xiaoyanzi.com a.html
http://api.xiaoyanzi.com b.html 主域名一样。 a.html 想访问b.html 默认不允许。
同源:域名,端口,协议必须一样。
(不同源就跨域)
但是主域名都一样。
所以我怎么去解决这个跨域的问题。
http://www.z.com a.html 使用js 添加一个document.domian ="zhuwu.com";
http://api.z.com b.html 使用js 添加一个document.domian ="zhuwu.com";
2:ajax 跨域
在http://www.z.com 有一个a.html 想去访问http://www.baidu.com/afads.php
有跨域的特性。(浏览器觉得会有安全问题。)
a.html
$.ajax({
url:"http://www.baidu.com",
type:"",
})
请求可以发送出去,数据回不来。
$.ajax({
url:"http://www.baidu.com",
type:"",
dataType:"jsonp", })
底层的原理
在jQuery 的参数不加 dataType:"jsonp",
默认是发送一个xmlHttpRequest 请求,使用这个对象去发送请求。你浏览器根本就接收不到数据。
添加了:dataType:"jsonp",
jQuery 里面
var script=document.createElement("script");
script.src="http://www.baidu.com/demo.js"; 跨域访问是我们以后比较常见的操作:
1: 在我的网站下面去访问一些其它网站提供的一些服务。
2: 天气预报,查询机票,查询火车票。 查询ip 地址。电话号码归属地
jsonp的工作原理的更多相关文章
- javascript 同源策略和 JSONP 的工作原理
同源策略 同源策略是一个约定,该约定阻止当前脚本获取或操作另一域的内容.同源是指:域名.协议.端口号都相同. 简单地说,A 服务器下的 a 端口执行 ajax 程序,不能获取 B 服务器或者 A 服务 ...
- 浅谈JSONP 的工作原理
小编最近在工作中经常用到 jsonp 这个东西, 表示之前从来没用过 最近稍微研究了下 当然很多内容来源于网上 收集整理 你懂的 ~~~ 话说我们访问一个页面的时候 需要像另一个网站获取部分信息, ...
- JSONP 的工作原理是什么?
利用<script>标签没有跨域限制的"漏洞"来达到与第三方通讯的目的. 当需要通讯时,本站脚本创建一个<script>元素,地址指向第三方的API网址,形 ...
- jsonp 跨域原理详解
JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略).这一策略对于Java ...
- ajax工作原理及jsonp跨域详解
一.Ajax简介 ajax = 异步 JavaScript 和 XML. ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术.我们知道,传统的网页(不使用ajax)如果需要更新内容, ...
- ajax工作原理,Jsonp原理
Ajax工作原理是 相当于在用户和服务器之间加了-个中间层(AJAX引擎),使用户操作与服务器响应异步化. 对于用户请求ajax引擎会做一些数据验证和数据处理,不是所有请求都提交给服务器,当需要从服务 ...
- ajax及其工作原理
1.关于ajax的名字 ajax 的全称是Asynchronous JavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式. 2. ...
- Ajax工作原理及实例
1.关于ajax的名字 ajax 的全称是Asynchronous JavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式. 2. ...
- 菜鸟学Struts2——Struts工作原理
在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...
随机推荐
- 大数据小视角5:探究SSD写放大的成因与解决思路
笔者目前开发运维的存储系统的服务器都跑在SSD之上,目前单机服务器最大的SSD容量有4T之多.(公司好有钱,以前在实验室都只有机械硬盘用的~~)但SSD本身的特性与机械硬盘差距较大,虽然说在性能上有诸 ...
- js算法初窥05(算法模式02-动态规划与贪心算法)
在前面的文章中(js算法初窥02(排序算法02-归并.快速以及堆排)我们学习了如何用分治法来实现归并排序,那么动态规划跟分治法有点类似,但是分治法是把问题分解成互相独立的子问题,最后组合它们的结果,而 ...
- Android应用开发-数据存储和界面展现(二)
SQLite数据库 // 自定义类MyOpenHelper继承自SQLiteOpenHelper MyOpenHelper oh = new MyOpenHelper(getContext(), &q ...
- OSINT系列:威胁信息挖掘ThreatMiner
OSINT系列:威胁信息挖掘ThreatMiner ThreatMiner.org是一个非营利性组织.它收集各种开放的网络信息和安全信息,然后进行整理,供安全人员检索.它可以提供六大类.十八小类 ...
- 观察者模式之ES6实现(二)
一.问题描述实现一个EventEmitter类,这个类包含以下方法:on(监听事件,该事件可以被触发多次)once(也是监听事件,但只能被触发一次)fire(触发指定的事件)off(移除指定事件的某个 ...
- python魔法方法-自定义序列
自定义序列的相关魔法方法允许我们自己创建的类拥有序列的特性,让其使用起来就像 python 的内置序列(dict,tuple,list,string等). 如果要实现这个功能,就要遵循 python ...
- 洛谷.3121.审查(AC自动机 链表)
题目链接 //删掉一个单词需要前移一段位置,用链表维护就好了 复杂度O(sum(len)) #include <cstdio> #include <cstring> #defi ...
- php 使用curl获取Location:重定向后url
在php获取http头部信息上,php有个自带的函数get_headers(),我以前也是用这个的,听说效率在win上不咋地,再加上最近研究百度url无果,写了cURL获取重定向url的php代码来折 ...
- [HDU5685]Problem A
来源: 2016"百度之星" - 资格赛(Astar Round1) 思路: 首先处理出所有前缀的哈希$f$,对于所有的询问$[a,b]$,答案即为$\frac{f[b]}{f[a ...
- JSON Web Token(JWT)机制
JSON Web Token(JWT)机制 JWT是一种紧凑且自包含的,用于在多方传递JSON对象的技术.传递的数据可以使用数字签名增加其安全行.可以使用HMAC加密算法或RSA公钥/私钥加密方式. ...