=波波日志 > JavaScript/Ajax > AJAX跨域问题解决办法=
[转]AJAX跨域问题解决办法
ajax伴随的goole 的推动,越来越多的站点开始使用了,在开大ajax程序的时候会遇到很多的问题,主要有以下几个方面:
1.跨浏览器问题
2.历史后退状态问题
3.跨域问题
跨浏览器的问题因为现在有很多的开元的框架已经解决了,我们无需为此而烦恼。
历史后退状态问题我们可以使用一个数组来保存历史纪录,然后把这些数据村到历史对象中去,中的也可以解决,并且还有很多的开元框架给与支持,这样问题就不是很大。
跨域的问题就不是很好的解决,但是还是有办法的,一下给出一些基本的解决方案供大家选择:
1.使用代理,你可以使用web端的程序编写代理程序,把所有的ajax请求的数据进行转发,web程序可以使php,jsp,asp等所有的编程语言。相信大家对这种方式一定很熟悉,这里就不详细的介绍了。
2.使用iframe的方式来定势的刷新页面,这种方式只是取得数据来显示,并不能真正的和求得的数据进行交互,转化成本页面的动态数据,不是很可取,应用也不是很多,我也忽略不去讨论了。
3.使用apache的代理功能,主要就是apache的方向代理,或者是url从定向,你也可以把其他的站点直接的挂在自己的网站上,这样的方式可能会友邦权的问题,多的九部介绍了,有兴趣的本有可以自己实践以下。
4.使用《script》标签的方式,这样的话就可以保正使用真正的ajax来跨域,并且可以使用返回来的数据,发誓很简单,在我们的后台程序处理后的到的结果都直接的用javascript 的方式返回,在我们的html中直接的使用返回数据的变量就可以了一个简单的例子
我们使用的html页面
后台程序
get.php
1.跨浏览器问题
2.历史后退状态问题
3.跨域问题
跨浏览器的问题因为现在有很多的开元的框架已经解决了,我们无需为此而烦恼。
历史后退状态问题我们可以使用一个数组来保存历史纪录,然后把这些数据村到历史对象中去,中的也可以解决,并且还有很多的开元框架给与支持,这样问题就不是很大。
跨域的问题就不是很好的解决,但是还是有办法的,一下给出一些基本的解决方案供大家选择:
1.使用代理,你可以使用web端的程序编写代理程序,把所有的ajax请求的数据进行转发,web程序可以使php,jsp,asp等所有的编程语言。相信大家对这种方式一定很熟悉,这里就不详细的介绍了。
2.使用iframe的方式来定势的刷新页面,这种方式只是取得数据来显示,并不能真正的和求得的数据进行交互,转化成本页面的动态数据,不是很可取,应用也不是很多,我也忽略不去讨论了。
3.使用apache的代理功能,主要就是apache的方向代理,或者是url从定向,你也可以把其他的站点直接的挂在自己的网站上,这样的方式可能会友邦权的问题,多的九部介绍了,有兴趣的本有可以自己实践以下。
4.使用《script》标签的方式,这样的话就可以保正使用真正的ajax来跨域,并且可以使用返回来的数据,发誓很简单,在我们的后台程序处理后的到的结果都直接的用javascript 的方式返回,在我们的html中直接的使用返回数据的变量就可以了一个简单的例子
我们使用的html页面
+展开
-HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
HEAD>
<SCRIPT LANGUAGE="JavaScript" src="" id="get">script>
<SCRIPT LANGUAGE="JavaScript">
script>
<BODY>
<INPUT TYPE="button" value="CLICK ME" onclick="test()">
BODY>
HTML>
<HTML>
<HEAD>
<TITLE> New Document TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
HEAD>
<SCRIPT LANGUAGE="JavaScript" src="" id="get">script>
<SCRIPT LANGUAGE="JavaScript">
script>
<BODY>
<INPUT TYPE="button" value="CLICK ME" onclick="test()">
BODY>
HTML>
后台程序
get.php
+展开
-PHP
echo 'var xml ="asdf";';
当你点击按钮的时候就会去服务器那去你需要的js,但加在完成后就可以自己的使用变量xml了,运行代码后你会得到一个对话框显示asdf;
相关文章:
最新AJAX(XMLHttpRequest)进行跨域请求方法详解
Javascript跨域和Ajax跨域解决方案
如何解决ajax跨域的问题
FireFox下端口不一致导致跨域
类别:JavaScript/Ajax 作者:转载 日期:2009-07-01 【评论:3】
相关文章
- anya
日期:2009-12-30 13:29:48 IP:125.122.*.*
还可以嘛管理员回复(2009-12-30 16:08:10)
呵呵~
- ailin
日期:2010-5-31 11:09:20 IP:117.27.*.*
找一個 : ActiveX程序员
需要一个ActiveX控件,在Windows系统,从串口接收信息(ASCII格式),然后在浏览器(IE和/或火狐)里Javascript代码可以读到这个信息。
我愿意付100块人民币 (如果你嫌少,可以商量,如果你有能力,我们还可以长期合作)。
如果在linux系统上,你也能从串口接收信息(ASCII格式),然后在浏览器(火狐)里Javascript代码可以读到这个信息。这个我也付100块。
说明:
我自己懒得装VisualStudio,再去调试它。
如果你本来会这个,半个小时搞定。你做好了之后可以公开你的代码,挂到网上扬名立万, 我付100元作为赞助。
如果你要得多一点点,也可以。但是那些想要几千块的,给我感觉在做梦。想半个小时赚几千,太夸张了。
联系信息:alansec00@gmail.com
如果你怕我不付钱,我们可以通过任务中国进行交易。
管理员回复(2010-5-31 14:16:50)
没有串口设备,也没时间调试,你如果有空可以参考下面的文章
C#2.0中,SerialPort如何读取串口数据并显示在TextBox上
asp.net 串口操作
用C#编写ActiveX控件1
用C#编写ActiveX控件2
用C#编写ActiveX控件3
- Chevic
日期:2011-12-29 13:39:55 IP:219.137.*.*
第四个方式也写得太简陋了吧。管理员回复(2011-12-29 16:07:50)
呵呵,一般是用代理的多
发表留言
热门博文
- ajax问题总结
- jQuery dataType指定为json的问题
- ajax+asp.net+mssql无刷新聊天室
- ajax无刷新上传文件,使用iframe模仿
- ajax对象abort方法
- JavaScript代码,变量,函数执行顺序问题
最新博文
- jquery+flash显示图片实时加载进度插件
- jquery浮动层拖动插件
- firefox NPMethod called on non-NPObject wrapped JSObject!错误
- IE浏览器setCapture和releaseCapture介绍
- 51.la统计出问题了
- 隐藏删除ckeditor状态栏
随机博文
- ckeditor添加自定义的功能按钮
- ajax+php+mssql无刷新聊天室
- 30种时尚的CSS网站导航条
- 扩展Firefox下table控件的原型方法moveRow
- javascript的prototype继承
- javascript操作JSON
广告商赞助

