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核心模块,拦截器和用户实现部分,其中 ...
随机推荐
- 键盘键码Key Code
来源:https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes Key Code backspace 8 t ...
- (转)获取 request 中用POST方式"Content-type"是"application/x-www-form-urlencoded;charset=utf-8"发送的 json 数据
request中发送json数据用post方式发送Content-type用application/json;charset=utf-8方式发送的话,直接用springMVC的@RequestBody ...
- go语言学习-数组-切片-map
数组 go语言中数组的特点: 数组的长度是固定的,并且长度也是数组类型的一部分 是值类型,在赋值或者作为参数传递时,会复制整个数组,而不是指针 定义数组的语法: var arr1 = [5]int{1 ...
- String、StringBuffer和StringBulder
String:不可改变的Unicode字符序列. 池化思想,把需要共享的数据放在池中,用一个存储区域来存放一些公用资源以减少存储空间的开销. 在String类中,以字面值创建时,会到Java方法空间的 ...
- IdentityServer4目录
一.介绍 二.快速入门 三.主题 四.端点 五.参考 IdentityServer4是ASP.NET Core 2的OpenID Connect和OAuth 2.0框架. 它可以在您的应用程序中启用以 ...
- POJ.1752.Advertisement(差分约束 最长路SPFA)
题目链接 \(Description\) 有\(n\)个人在一条直线上跑步,每个人的起点 \(Si\).终点 \(Ei\) 已知:每个点可以放一个广告牌,一个人\(i\)能看到的广告牌数量为 \(Ei ...
- 潭州课堂25班:Ph201805201 WEB 之 CSS 第二课 (课堂笔记)
CSS 的引入方法: 第一种 : <!--直接在标签仙设置--><p style="color: yellow">CSS的第一种引入方法</p> ...
- rabbitmq使用(三)
Publish/Subscribe In the previous tutorial we created a work queue. The assumption behind a work que ...
- markdown 语法和工具
一 简明语法 来自: http://maxiang.info/ 二 markdown 语法: https://github.com/rhiokim/haroopad/blob/develop/Syn ...
- android:碎片的使用方式
介绍了这么多抽象的东西,也是时候应该学习一下碎片的具体用法了.你已经知道,碎 片通常都是在平板开发中才会使用的,因此我们首先要做的就是新建一个平板电脑的模拟 器.由于 4.0 系统的平板模拟器好像存在 ...