跨域请求

Posted 黑白kn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨域请求相关的知识,希望对你有一定的参考价值。

一、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\');

 

以上是关于跨域请求的主要内容,如果未能解决你的问题,请参考以下文章

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

如何发送跨域ajax请求[重复]

跨域请求如何携带cookie?不小心都拿了Offer

vue工程本地代码请求http发生跨域提示错误解决方法

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装