• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
黑白kn
博客园    首页    新随笔    联系   管理    订阅  订阅

跨域请求

一、jsonp

JSON(JavaScript Object Notation)和JSONP(JSON with Padding):将json格式数据以function包裹起来,通过script标签发生至后台,并且返回接受数据

//通过script标签引入一个文件,这个文件载入成功后会执行我们在url参数中指定的函数,并且会把我们需要的json数据作为参数传入。所以jsonp是需要服务器端的页面进行相应的配合的。
1. callback参数 为方法名
//方法在跨域访问链接<script src="http://test.com/07cross_domain.php?callback=username"> <//script>的前面

	function username(data){
			console.log(data);//[1, 2, "username"]
		}
		<script src="http://test.com/07cross_domain.php?callback=username"> <//script>

  2.jquery 封装jsonp 实现跨域访问

    $.getJSON('http://test.com/07cross_domain.php?callback=?',function(data){
        console.log(data);//[1, 2, "jQuery111308241057162129959_1460185199870"]
    })

 

二、iframe或img标签跨域

其实jsonp是依靠 script标签跨域

三、Proxy后台代理 

例如:PHP通过Cur模块 l实现网页代理proxy

四、同源机制 CORS(Access-Control-Allow-Origin)

// 指定允许其他域名访问  
header('Access-Control-Allow-Origin:*');  
// 响应类型  
header('Access-Control-Allow-Methods:POST');  
// 响应头设置  
header('Access-Control-Allow-Headers:x-requested-with,content-type');

 

posted @ 2017-07-04 13:40  黑白kn  阅读(173)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3