1 / 4
文档名称:

js跨域访问问题解决方法.docx

格式:docx   大小:109KB   页数:4页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

js跨域访问问题解决方法.docx

上传人:sanshengyuanting 2018/8/3 文件大小:109 KB

下载得到文件列表

js跨域访问问题解决方法.docx

相关文档

文档介绍

文档介绍:js 跨域访问问题解决方法
什么引起了ajax不能跨域请求的问题?
ajax本身实际上是通过XMLHttpRequest对象来进行数据的交互,而浏览器出于安全考虑,不允许js代码进行跨域操作,所以会警告。
有什么完美的解决方案么?
解决方案有不少,但是只能是根据自己的实际情况来选择。
跨域的安全限制都是指浏览器端来说的,服务器端是不存在跨域安全限制的。所以针对这2种情况衍生出2类跨域解决方案,一类是服务器端做中转类似代理方式,一类是js处理浏览器端的真正跨域访问。
具体情况有:
本域和子域的相互访问: k. 用 = "";
本域和其他域的相互访问: . 用 XMLHttpRequest访问代理,既服务器端代理方式
本域和其他域的相互访问: . 用 JS创建动态脚本,<script>标签的src属性实现跨域访问
解决方法:
如果想做到数据的交互,。, = "",这样就可以统一域了,可以实现跨域访问。就和平时同一个域中镶嵌iframe一样,直接调用里面的JS就可以了。
这种情形是最经常遇到的,也是用的最多的了。,也就是另外一个是别人的,人家告诉你你要取得数据就访问某某连接参数是什么样子的,最后返回数据是什么格式的。而你需要做的就是让你的服务器端充当中转代理,让服务器去别人的网站上取得数据,再返回给浏览器端。
服务器端充当中转代理方式有很多可以由服务器端程序实现,也可以修改服务器配置实现,下面举例Apache重写(mod_rewrite proxy模式)方式:
在Apache的安装目录下的conf/ 文件添加如下语句:
LoadModule proxy_module modules/
LoadModule proxy_http_module modules/
LoadModule rewrite_module modules/
RewriteEngine On
RewriteRule ^/_proxy/(.*)$ http://$1 [P,L]
这样就可以把其他网站的url映射为本服务器的/_proxy/目录下面, 例如可以这么访问百度 http://html./_proxy/
这个的区别就是请求是使用<script>标签来请求的,这个要求也是两个域都是由你来开发才行。原理就是JS文件注入, 内生成一个JS标签,的某个页面b,b返回数据即可,可以直接返回JS的代码。因为script的src属性是可以跨域的。具体看代码,这个也比较简单。
/ 页面代码如下:
<script type="text/javascript">
function myTest(data) {
alert(data);
}
</script>
<script type="text/javascript" src="ex!?jsoncallback=myTest"></script>
/:
$