ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 1、跨域的三种方式 1、使用代理 自己的网站发送Ajax请求 自己网站的php文件 请求其他网站 2、设置对方网站的header('Access-Control-Allow-Origin:*'); 3、使用JSONP技术 # 2、JSONP技术 Jsonp(JSON with Padding) 是 json 的一种"使用模式",通俗的讲,jsonp可以通过html标签中的src属性访问另外域的内容,可以让网页从别的域名(网站)那获取资料,即跨域读取数据。 什么样的HTML标签有src属性: ``` img script iframe ``` ![](https://img.kancloud.cn/df/5c/df5c162a6e8897bddc7caabd4a050431_1358x440.png) 上面的例子,要求浏览器端设置的函数名必须和另外域的服务器中要求的函数名一直,案例中都必须是fn。 如果函数名不知道是什么?可以传递参数,达到函数名一致的要求。 ![](https://img.kancloud.cn/29/0b/290b806f36ba98e920366e745abbbaa6_1340x423.png) # 3、jQuery中的Ajax跨域请求 ``` $.get('http://www.js.com/jsonp.php?fn=?', {}, function(e){ //e就是另外域的PHP返回的数据 }, 'jsonp'); 用另外的方法也可以 $.ajax({ type:'get', data:{}, dataType:'jsonp', url:'http://www.js.com/jsonp.php?fn=?', success:function(e){ //处理返回的数据 } }); ``` 专门用于跨域的JSONP请求 ``` $.getJSON( 'http://www.js.com/jsonp.php?callback=?', function(e){ console.log(e); } ); ``` ![](https://img.kancloud.cn/96/2c/962ce6f734ab807436c56f78077e3aa0_817x608.png) 另外域www.js.com中PHP文件: ![](https://img.kancloud.cn/87/6b/876b77f6ac8e33c86c9affe42e6eca67_776x395.png)