Ajax 中跨域问题的结决办法
[转]
ajax伴随的goole的推动,越来越多的站点开始使用了,在开大ajax程序的时候会遇到很多的问题,主要有以下几个方面:
跨浏览器问题
历史后退状态问题
跨域问题
跨浏览器的问题因为现在有很多的开元的框架已经解决了,我们无需为此而烦恼。
历史后退状态问题我们可以使用一个数组来保存历史纪录,然后把这些数据村到历史对象中去,中的也可以解决,并且还有很多的开元框架给与支持,这样问题就不是很大。
跨域的问题就不是很好的解决,但是还是有办法的,一下给出一些基本的解决方案供大家选择:
使用代理,你可以使用web端的程序编写代理程序,把所有的ajax请求的数据进行转发,web程序可以使php,jsp,asp等所有的编程语言。相信大家对这种方式一定很熟悉,这里就不详细的介绍了。
使用iframe的方式来定势的刷新叶面,这种方式只是取得数据来显示,并不能真正的和求得的数据进行交互,转化成本页面的动态数据,不是很可取,应用也不是很多,我也忽略不去讨论了。
使用apache的代理功能,主要就是apache的方向代理,或者是url从定向,你也可以把其他的站点直接的挂在自己的网站上,这样的方式可能会友邦权的问题,多的九部介绍了,有兴趣的本有可以自己实践以下。
使用《script》标签的方式,这样的话就可以保正使用真正的ajax来跨域,并且可以使用返回来的数据,发誓很简单,在我们的后台程序处理后的到的结果都直接的用javascript的方式返回,在我们的html中直接的使用返回数据的变量就可以了一个简单的例子
我们使用的html叶面
1<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
2<HTML>
3<HEAD>
4<TITLE>NewDocument</TITLE>
5<METAname="Generator"CONTENT="EditPlus">
6<METAname="Author"CONTENT="">
7<METAname="Keywords"CONTENT="">
8<METAname="Description"CONTENT="">
9</HEAD>
10<SCRIPTLANGUAGE="JavaScript"src=""id="get">
11</SCRIPT>
12<SCRIPTLANGUAGE="JavaScript">
13<!--
14functionget(url)
15{
16varobj=document.getElementById("get");
17obj.src=url;
18(obj.readStatus==200)
19{
20alert(xml);
21}
22}
23functiontext()
24{
25get(get.php);
26}
27//-->
28</SCRIPT>
29<BODY>
30<INPUTTYPE="button"value="CLICKME"onclick="test()">
31</BODY>
32</HTML>
后台程序get.php
eche'varxml="asdf";';
当你点击按钮的时候就会去服务器那去你需要的js,但加在完成后就可以自己的使用变量xml了,运行代码后你会得到一个对话框显示asdf;
我来自:向东博客
http://www.cnblogs.com/meil/archive/2007/05/22/755564.html
相关推荐
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo