一、CORS设置请求头
  • 设置请求头实现跨域:
//跨域的浏览器会让请求带Origin头,表明来自哪里的跨域请求
Origin: http://xxx.example //表明允许跨域访问
Access-Control-Allow-Origin:上面origin的地址 //其他跨域相关的请求头
Access-Control-Allow-Methods:POST,GET
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Origin,Content-Type,Accept,token,X-Requested-With

 

二、JSONP通过script标签回调函数实现跨域
  • 原理

    浏览器中对于img、script、iframe等标签不会跨域阻拦

    生成script标签,利用script的src对目标地址进行访问,然后拿到数据,删除script标签,并调用回调函数
var tag = document.createElement("script");
tag.src = "http://www.xxx.com/api/v1/data/?callback=handleback&id=1717";
document.head.appendChild(tag);
document.head.removeChildren(tag); function handleback(response, state){
console.log("取回的数据为:"+response)
}
  1. 创建一个script标签

  2. 该标签添加src属性,指向将要访问的地址

  3. 定义回调函数,标签加载完成后自动调用

  4. 将该标签添加到页面中

  5. 该标签被浏览器自动加载,调用回调函数取得数据处理

  6. 删除该标签

 

ajax实现跨域请求
  • ajax实现
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
<script type="text/javascript">
$(function(){
$("#btn").click(function(){
$.ajax({
url : "https://api.douban.com/v2/book/search",
type : "GET",
dataType : "jsonp", // 返回的数据类型,设置为JSONP方式
jsonp : 'callback', //指定一个查询参数名称来覆盖默认的 jsonp 回调参数名 callback
jsonpCallback: 'handleResponse', //设置回调函数名
data : {
q : "javascript",
count : 1
},
success: function(response, status, xhr){
console.log('状态为:' + status + ',状态是:' + xhr.statusText);
console.log(response);
}
});
});
});
</script>

最新文章

  1. 关于IIF多个条件的用法
  2. .net WebClient发送请求实例:
  3. javaSE文件的使用
  4. POJ 3259 Wormholes (Bellman_ford算法)
  5. Postfix性能测试(PHP版)
  6. mysql performance schema的即时诊断工具-邱伟胜
  7. mysql中 的 ENGINE = innodb; 是什么意思?
  8. CloudStack API编程指引
  9. Flask笔记
  10. Spring MVC 原理
  11. UNIX网络编程——TCP/IP简介
  12. vue的表单编辑删除,保存取消功能
  13. 队列----java实现
  14. VirtualBox如何扩展虚拟机Ubuntu的硬盘容量-转
  15. Scala_修饰符
  16. 固态盘经常性蓝屏处理方法(WIN7/8)
  17. linux rsync安装与使用
  18. 常用的Oracle的doc命令
  19. Deep learning与Neural Network
  20. Normalize.css与Reset CSS:定义浏览器统一的默认样式

热门文章

  1. Jquery 强大的表单验证操作
  2. (摘)Entity Framework Core 2.1带来更好的SQL语句生成方案
  3. JavaScript 循环语句
  4. Java高阶语法---Volatile
  5. 我的第三个开源库GuaJiangViewDemo——中文文档
  6. JavaScript是如何工作的:编写自己的Web开发框架 + React及其虚拟DOM原理
  7. vue 新版本 webpack 代理 跨域设置
  8. Timeline Style
  9. MyCat | 分库分表实践
  10. scrollTo不起作用