小编给大家分享一下AJAX跨域的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
AJAX 的跨域问题,常用的解决方法有两种,简单记录下,详细内容查看参考资料。以下示例自建两个域名测试,www.test.com、www.example.com。
同源策略
同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的关键的安全机制。
两个页面,如果域名、协议、端口都相同,即是同源,其间的交互不存在问题。同源策略是很重要的安全机制,但是有些时候需要突破这种机制,这就需要跨域。
JSONP
JSONP 是很常用的方法,它是利用 <script> 标签没有跨域限制的原理实现。以下是在 www.test.com 中使用 JQuery 示例
$.ajax( { url:'//www.example.com', data:{name:'tom'}, type:'get', dataType:'jsonp', jsonp: "callback", success:function(data) { console.log(data) } })
以下是 www.example.com 的 PHP 处理
<?php $callback = $_GET['callback']; $name = $_GET['name']; // 处理数据 $data = md5($name); echo $callback . '(' . json_encode($data) . ')';
CORS
CORS (Cross-origin resource sharing),跨域资源共享标准允许 Web 应用服务器进行跨域访问控制。相对于 JSONP 只支持 GET ,CORS 支持更多的 HTTP 请求,同时更简单、安全。不过 CORS 可能会存在兼容问题。
以下是在 www.test.com 中发送 AJAX 请求
$.ajax( { url:'//www.example.com', data:{name:'tom'}, type:'post', dataType:'json', success:function(data) { console.log(data) } });
www.example.com 的 PHP 处理
<?php header("Access-Control-Allow-Origin: http://www.test.com"); $name = $_POST['name']; // 处理数据 $data = md5($name); echo json_encode($data);
以上是“AJAX跨域的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。