您现在的位置是:首页 > 文章详情

Ajax跨越问题原因分析与解决思路

日期:2018-05-01点击:546

1.什么是AJAX跨域问题

简单来说,就是前端调用后端服务接口时
如果服务接口不是同一个域,就会产生跨域问题

2.AJAX跨域场景

前后端分离、服务化的开发模式
前后端开发独立,前端需要大量调用后端接口的场景
只要后端接口不是同一个域,就会产生跨域问题
跨域问题很普遍,解决跨域问题也很重要

3.AJAX跨域原因

浏览器限制:浏览器安全校验限制
跨域(协议、域名、端口任何一个不一样都会认为是跨域)
XHR(XMLHttpRequest)请求

4.AJAX跨域问题解决思路

浏览器:浏览器取下跨域校验,实际价值不大
XHR:不使用XHR,使用JSONP,有很多弊端,无法满足现在的开发要求
跨域:被调用方修改支持跨域调用(指定参数);调用方修改隐藏跨域(基于代理)

5.JSONP解决跨域访问

1.服务端JSONP格式数据

如客户想访问 : http://www.runoob.com/try/ajax/jsonp.php?jsonp=callbackFunction

假设客户期望返回JSON数据:[“customername1”,”customername2”]。

真正返回到客户端的数据显示为: callbackFunction([“customername1”,”customername2”])。

服务端文件jsonp.php代码为:

jsonp.php 文件代码

<?php header('Content-type: application/json'); //获取回调函数名 $jsoncallback = htmlspecialchars($_REQUEST ['jsoncallback']); //json数据 $json_data = '["customername1","customername2"]'; //输出jsonp格式的数据 echo $jsoncallback . "(" . $json_data . ")"; ?>
2.客户端
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JSONP 实例</title> <script src="http://cdn.static.runoob.com/libs/jquery/1.8.3/jquery.js"></script> </head> <body> <div id="divCustomers"></div> <script> $.getJSON("http://www.runoob.com/try/ajax/jsonp.php?jsoncallback=?", function(data) { var html = '<ul>'; for(var i = 0; i < data.length; i++) { html += '<li>' + data[i] + '</li>'; } html += '</ul>'; $('#divCustomers').html(html); }); </script> </body> </html>
原文链接:https://yq.aliyun.com/articles/629724
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章