zoukankan      html  css  js  c++  java
  • 跨域Ajax -- jsonp和cors

    跨域Ajax
    - jsonp
    - cors
    
    参考博客:
    http://www.cnblogs.com/wupeiqi/articles/5703697.html
    http://www.cnblogs.com/wupeiqi/articles/5369773.html
    
    JSONP
    网站:
    - requests发请求时,跨域无限制
    - ajax发请求时,浏览器限制【是否可以绕过限制?】
    
    如何绕过浏览器的同源策略?
    - ajax,受同源策略限制。
    - img,script,iframe,不受同源策略限制。
    
    - JSONP:
    	本地:先定义函数
    	远程:func("数据")
    	
    	方式一:手动
    			/*
    			function funcvvvvvv(arg) {
    				alert(arg);
    
    				document.head.removeChild(tag);
    			}
    
    			function jsonp(url){
    				tag = document.createElement('script');
    				tag.src = url;
    				document.head.appendChild(tag);
    			}*/
    	方式二:调用jQuery
    			function Jsonp2(){
    				$.ajax({
    					url: "http://127.0.0.1:8000/get_data.html",
    					type: 'GET',
    					dataType: 'JSONP',
    					success: function(data){
    						console.log(data);
    					}
    				})
    			}
    	本质:创建script标签	
    
    	编写跨域请求:
    		本地:
    			
    			function list666(arg){
    			
    			}
    			
    			$.ajax({
    				url: "http://www.jxntv.cn/data/jmd-jxtv2.html",
    				type: 'GET',
    				dataType: 'JSONP',
    				jsonp: 'callback',
    				jsonpCallback: 'list666'
    			})
    			
    		远程:
    			func_name = request.GET.get('callback')
    			return HttpResponse('%s("机密数据")' %func_name)
    			
    	应用场景:
    		 你,调用者
    		CEO,服务商,提供API
    		
    		- JSONP交互
    		- requests模块
    		
    		
    		用户,调用者
    		  你,服务商,提供API
    		  
    		  专业:获取用户请求callback,func(内容)
    	
    	JSONP是否可以发送POST请求?

    CORS
    本地:无作为
    远程:设置响应头
    response['Access-Control-Allow-Origin'] = "http://127.0.0.1:8888"
    response['Access-Control-Allow-Methods'] = "PUT"
    response['Access-Control-Allow-Headers'] = "xxx"

      

  • 相关阅读:
    关于页面跳转
    javascript之继承
    ubuntu+mysql+php+apache2+wordpress建站全记录
    Vue双向绑定原理解析
    Excel导入
    Excel文件下载(导出)
    IDEA创建Activiti工作流(集成的方式,生成表)
    git基本操作
    git中分支操作
    整合dubbo的依赖
  • 原文地址:https://www.cnblogs.com/linzetong/p/8849828.html
Copyright © 2011-2022 走看看