<!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的工作原理的更多相关文章

  1. javascript 同源策略和 JSONP 的工作原理

    同源策略 同源策略是一个约定,该约定阻止当前脚本获取或操作另一域的内容.同源是指:域名.协议.端口号都相同. 简单地说,A 服务器下的 a 端口执行 ajax 程序,不能获取 B 服务器或者 A 服务 ...

  2. 浅谈JSONP 的工作原理

    小编最近在工作中经常用到 jsonp 这个东西, 表示之前从来没用过  最近稍微研究了下 当然很多内容来源于网上 收集整理 你懂的 ~~~ 话说我们访问一个页面的时候 需要像另一个网站获取部分信息, ...

  3. JSONP 的工作原理是什么?

    利用<script>标签没有跨域限制的"漏洞"来达到与第三方通讯的目的. 当需要通讯时,本站脚本创建一个<script>元素,地址指向第三方的API网址,形 ...

  4. jsonp 跨域原理详解

    JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略).这一策略对于Java ...

  5. ajax工作原理及jsonp跨域详解

    一.Ajax简介 ajax = 异步 JavaScript 和 XML. ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术.我们知道,传统的网页(不使用ajax)如果需要更新内容, ...

  6. ajax工作原理,Jsonp原理

    Ajax工作原理是 相当于在用户和服务器之间加了-个中间层(AJAX引擎),使用户操作与服务器响应异步化. 对于用户请求ajax引擎会做一些数据验证和数据处理,不是所有请求都提交给服务器,当需要从服务 ...

  7. ajax及其工作原理

    1.关于ajax的名字 ajax 的全称是Asynchronous JavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式. 2. ...

  8. Ajax工作原理及实例

    1.关于ajax的名字 ajax 的全称是Asynchronous JavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式. 2. ...

  9. 菜鸟学Struts2——Struts工作原理

    在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...

随机推荐

  1. Session丢失的解决方法

    1.修改配置文件 <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:4 ...

  2. unity与安卓通讯的一些事儿

    1.unity与安卓通讯的两种方法: 第一种是unity导出安卓工程,在unity的BuildSetting窗口可以将unity工程导出为安卓工程,然后再用Eclipse或者Android Studi ...

  3. JavaEE - 20181225

    作者:沈世钧链接:https://www.zhihu.com/question/305924723/answer/557800752来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  4. 生产环境中tomcat的配置

    生产环境中要以daemon方式运行tomcat 通常在开发环境中,我们使用$CATALINA_HOME/bin/startup.sh来启动tomcat, 使用$CATALINA_HOME/bin/sh ...

  5. 安卓工作室 android studio 汉化后,报错。 设置界面打不开。Can't find resource for bundle java.util.PropertyResourceBundle, key emmet.bem.class.name.element.separator.label

    安卓工作室 android studio 汉化后,报错. 设置界面打不开. Android studio has been sinified and reported wrong.The setup ...

  6. 4712: 洪水 基于链分治的动态DP

    国际惯例的题面:看起来很神的样子......如果我说这是动态DP的板子题你敢信?基于链分治的动态DP?说人话,就是树链剖分线段树维护DP.既然是DP,那就先得有转移方程.我们令f[i]表示让i子树中的 ...

  7. POJ.1704.Georgia and Bob(博弈论 Nim)

    题目链接 \(Description\) 一个1~INF的坐标轴上有n个棋子,给定坐标Pi.棋子只能向左走,不能跨越棋子,且不能越界(<1).两人每次可以将任意一个可移动的棋子向左移动一个单位. ...

  8. AppleScript脚本学习记录《一》

    tell命令块 tell application "Finder" display dialog "Hello World" end tell 声明变量 set ...

  9. Phone漂亮的动画

    //此处标明非原创 实现iPhone漂亮的动画效果主要有两种方法, 一种是UIView层面的, 一种是使用CATransition进行更低层次的控制, 第一种是UIView,UIView方式可能在低层 ...

  10. oracle级联删除

    oracle级联删除可以使用触发器来实现,但是比较麻烦,最简单的就是直接建立表的主外键关系,给列设置级联删除. ------创建了CLASS表,并设置ID字段为主键. -- Create table ...