Ajax--同源策略,jsonp跨域传输原理(callback),
什么是同源策略?
阮一峰的博客 同源策略
同源策略的解决方法: 跨域传输
img 标签的src是可以引入其他域名下的图片
script标签的src属性同理 ,也可以引入其他域名下的js文件,并执行 1.script的属性引入文件(页面地址)的时候是允许跨域
2.在页面地址后,拼接?callback=参数,让后端能接受到我们的参数
3.需要后端的配合,接收传过来的参数(函数名称),把我们处理好的json数据,作为函数的参数,再传回到前端
4.把我处理好的json数据,作为函数的参数在传回到前端 核心技术:
前端定义函数后端调用函数
(前端定义函数发送给后台,后台把数据作为定义函数的形参传给前端) 跨域传输例子:cross.html 跨域数据传输
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--
img 标签的 src 是可以引入其他域名下的图片,
script 标签的 src属性同理,也可以引入其他域名(跨域)下的js文件,并执行
-->
<!--
1. script的src属性引入文件(页面地址)的时候是允许跨域
2. 在src地址后,拼接?callback=参数,让后端能接收到我们参数
3. 需要后端配合,接收传过来的参数(函数名称),
4. 把我们处理好的json数据,作为函数的参数再传回到前端
核心技术:
前端定义函数,后端调用函数。
(前端定义函数发送给后台,后台把数据作为定义函数的参数传给前端。)
-->
<img src="http://www.ruanyifeng.com/blogimg/asset/2016/bg2016041202.jpg" alt="">
</body>
</html>
<script>
function getCrossJson(json) {
console.log(json);
alert("我们在html页面创建了一个函数,但是不在这里调用");
}
</script>
<!-- script 可以加载文件,并执行这些文件 -->
<!--<script src="http://localhost/AJAX/day02/13_cross.php"></script>-->
<!-- 跨域加载php文件 -->
<script src="http://127.0.0.1/AJAX/cross.php?callback=getCrossJson"></script>
在服务器中的cross.php
<?php
header('Content-Type:text/javascript;charset=utf-8;');
// echo 'getCrossJson()'; 写死的一个函数
$callback = $_GET['callback'];
// 读取一份json文件,把它放到$jsonStr变量里
$jsonStr = file_get_contents('nav.json');
echo "$callback($jsonStr)";
?>
Ajax--同源策略,jsonp跨域传输原理(callback),的更多相关文章
- 第二百七十四节,同源策略和跨域Ajax
同源策略和跨域Ajax 什么是同源策略 尽管浏览器的安全措施多种多样,但是要想黑掉一个Web应用,只要在浏览器的多种安全措施中找到某种措施的一个漏洞或者绕过一种安全措施的方法即可.浏览器的各种保安措 ...
- cors跨域和jsonp劫持漏洞 和 同源策略和跨域请求解决方案
cors跨域和jsonp劫持漏洞: https://www.toutiao.com/a6759064986984645127/ 同源策略和跨域请求解决方案:https://www.jianshu.co ...
- 11. cookie_session_原生ajax_readyState的值_同源策略_跨域_jsonp的使用
1. cookie 浏览器存储技术.(服务器将少量数据交于浏览器存储管理) 作用: 存储数据, 解决 http 协议无状态问题 工作流程: 浏览器发送请求给服务器,请求登录 服务器返回响应给浏览器,此 ...
- JSONP跨域的原理解析( 一种脚本注入行为)
JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制, 被称为“some-Origin Policy”(同源策略).这一策略对于Jav ...
- JSONP跨域的原理解析
JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为“Same- Origin Policy”(同源策略).这一策略对于Jav ...
- 【转】JSONP跨域的原理解析
JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略).这一策略对于Java ...
- JSONP跨域的原理解析(转)
JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same-Origin Policy"(同源策略). ...
- JSONP跨域的原理
一种脚本注入行为 在 2011年10月27日 那天写的 已经有 12671 次阅读了 感谢 参考或原文 服务器君一共花费了23.005 ms进行了2次数据库查询,努力地为您提供了这个页面. ...
- JSONP跨域的原理解析及其实现介绍
JSONP跨域的原理解析及其实现介绍 作者: 字体:[增加 减小] 类型:转载 时间:2014-03-22 JSONP跨域GET请求是一个常用的解决方案,下面我们来看一下JSONP跨域是如何实现的,并 ...
随机推荐
- Spring MVC(十一)--使用字符串实现重定向
Spring MVC中有两种重定向方式: 通过返回字符串,字符串必须以redirect:开头: 通过返回ModelAndView: 重定向的时候如果需要给重定向目标方法传参数,要分字符串参数和pojo ...
- 立体声耳机接口3F07
仅探讨三段式 剩余的两根,则是开关,插入耳机后,会断开,可以用于耳机和扬声器的切换.老式收音机大多采用这个结构
- SQL ORM框架
[LINQ]using (SqlConnection conn = new SqlConnection(conStr)) { string sql = $@"select * from vi ...
- 测试List对象排序
实体类: package test; public class NightlyRate { private String rate; public String getRate() { return ...
- 2019-5-21-Roslyn-使用-Directory.Build.props-管理多个项目配置
title author date CreateTime categories Roslyn 使用 Directory.Build.props 管理多个项目配置 lindexi 2019-05-21 ...
- PHP CURL 异步测试
需求, 请求第三方接口获取数据, 单个接口0.1秒, 如果有10万个接口, 那么岂不是得1万秒才能请求完, 所以使用PHP异步测试一下, 其他的方法还有: 1.使用队列, SupserVior 开多个 ...
- leyou_04_vue.js的ajax请求方式
1.异步查询数据,自然是通过ajax查询,大家首先想起的肯定是jQuery.但jQuery与MVVM的思想不吻合,而且ajax只是jQuery的一小部分.因此不可能为了发起ajax请求而去引用这么大的 ...
- mysql分区与分表的区别
分区 分区就是把一个数据表的文件和索引分散存储在不同的物理文件中. mysql支持的分区类型包括Range.List.Hash.Key,其中Range比较常用: RANGE分区:基于属于一个给定连续区 ...
- Vue. 之 Element dialog 拖拽
Vue. 之 Element dialog 拖拽 默认情况下,在使用Element的Dialog模块时,弹出框是不能移动的,且 一旦点击遮罩层区域,弹框就会消失. 解决方案: 1 在 utils 中新 ...
- java 实现文件内容的加密和解密
package com.umapp.test; import java.io.FileInputStream; import java.io.FileOutputStream; import java ...