如何解决ajax跨域的问题

ajax|解决|问题|跨域

ajax(动态网站静态化)伴随的goole 的推动,越来越多的站点开始使用了,在开大ajax(动态网站静态化)程序的时候会遇到很多的问题,主要有以下几个方面:

    1.跨浏览器问题
    2.历史后退状态问题

    3.跨域问题

    跨浏览器的问题因为现在有很多的开元的框架已经解决了,我们无需为此而烦恼。

    历史后退状态问题我们可以使用一个数组来保存历史纪录,然后把这些数据村到历史对象中去,中的也可以解决,并且还有很多的开元框架给与支持,这样问题就不是很大。

    跨域的问题就不是很好的解决,但是还是有办法的,一下给出一些基本的解决方案供大家选择:

    1.使用代理,你可以使用web端的程序编写代理程序,把所有的ajax(动态网站静态化)请求的数据进行转发,web程序可以使php(做为现在的主流开发语言),jsp(SUN企业级应用的首选),asp等所有的编程语言。相信大家对这种方式一定很熟悉,这里就不详细的介绍了。
    2.使用iframe的方式来定势的刷新叶面,这种方式只是取得数据来显示,并不能真正的和求得的数据进行交互,转化成本页面的动态数据,不是很可取,应用也不是很多,我也忽略不去讨论了。
    3.使用apache(Unix平台最流行的WEB服务器平台)的代理功能,主要就是apache(Unix平台最流行的WEB服务器平台)的方向代理,或者是url从定向,你也可以把其他的站点直接的挂在自己的网站上,这样的方式可能会友邦权的问题,多的九部介绍了,有兴趣的本有可以自己实践以下。
    4.使用《script》标签的方式,这样的话就可以保正使用真正的ajax(动态网站静态化)来跨域,并且可以使用返回来的数据,发誓很简单,在我们的后台程序处理后的到的结果都直接的用javascript 的方式返回,在我们的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">
<!--
function get(url)
{
var obj = document.getElementById("get");
obj.src = url;
(obj.readStatus == 200)
{
alert(xml(标准化越来越近了));
}
}
function text()
{
get (get.php(做为现在的主流开发语言));
}
//-->
</SCRIPT>
<BODY>
<INPUT TYPE="button" value="CLICK ME" >
</BODY>
/HTML>

    后台程序

get.php(做为现在的主流开发语言)
eche 'var xml(标准化越来越近了) ="asdf";';
    当你点击按钮的时候就会去服务器那去你需要的js,但加在完成后就可以自己的使用变量xml(标准化越来越近了)了,运行代码后你会得到一个对话框显示asdf;

 

时间: 2024-09-17 03:45:52

如何解决ajax跨域的问题的相关文章

浅析JSONP解决Ajax跨域访问问题的思路详解_AJAX相关

前几天,工作上有一新需求,需要前端web页面异步调用后台的Webservice方法返回信息.实现方法有多种,本例采用jQuery+Ajax,完成后,在本地调试了一切ok,但是部署到服务器上以后就出现问题了,后台服务调用没有响应,怎么回事?代码没怎么改动,唯一修改的地方就是jQuery的ajax方法中的url地址.难道是这里的问题,经过检查和调试,发现原来是同源策略在作怪,我们知道,JavaScript或jQuery是在Web前端开发中经常使用的动态脚本技术.在JavaScript中,有一个很重要

JSONP跨域GET请求解决Ajax跨域访问问题_json

前几天,工作上有一新需求,需要前端web页面异步调用后台的Webservice方法返回信息.实现方法有多种,本例采用jQuery+Ajax,完成后,在本地调试了一切ok,但是部署到服务器上以后就出现问题了,后台服务调用没有响应,怎么回事?代码没怎么改动,唯一修改的地方就是jQuery的ajax方法中的url地址.难道是这里的问题,经过检查和调试,发现原来是同源策略在作怪,我们知道,JavaScript或jQuery是在Web前端开发中经常使用的动态脚本技术.在JavaScript中,有一个很重要

JSONP解决AJAX跨域代码示例

有两个子域名,a.xx.com和b.xx.com,现在我在a.xx.com一个页面中发送ajax请求b.xx.com一个控制器中的方法,希望得到返回数据,但是返回状态302,应该是跨域问题没有解决. 解决ajax跨域问题的一个办法是使用jsonp,jquery封装了ajax方法和getJason方法,工作中也遇到了跨域问题,记录一下jsonp的用法和示例. (function($) { var url = '/scripts/jquery4u-sites.json?callback=?';  

完美解决ajax跨域请求下parsererror的错误

ajax请求报parsererror错误是很宽泛的概念,很多情况下都报这个错, 在很多时候,即使ajax提交.返回都正常 XMLHttpRequest.status=200  (正常响应) XMLHttpRequest.readyState=4 (正常接收) ajax也会提示一个parseerror的错误. 出现这个错误,大都是不良书写习惯,或者语法不当造成的. 关于ajax的错误,请使用: error:function(XMLHttpRequest, textStatus, errorThro

深入浅析Jsonp解决ajax跨域问题

一.介绍 最近跨域问题比较多,而且自己刚好也看到这一块,就总结了一下,关于JSONP的东西百度的话东西确实很多,很多人都是复制别人的,如此下去,其实找的资料就那么几份,关键是我还看不懂,可能是能力问题吧,自己经过很多尝试,所以总结了一下,终究还是弄懂了皮毛.注意一点是,这里是用Jsonp解决ajax的跨域问题,具体的实现其实不是ajax. 1.同源策略 浏览器有一个很重要的概念--同源策略(Same-Origin Policy).所谓同源是指,域名,协议,端口相同.不同源的客户端脚本(JavaS

解决ajax跨域请求数据cookie丢失问题

前端: 以jquery为例: 需要加入 复制代码 代码如下: xhrFields: {             withCredentials: true         },         crossDomain: true, $.ajax({         type: postType,         url: url,         data: postData || '',         xhrFields: {             withCredentials: tru

浅析JSONP之解决ajax跨域问题_AJAX相关

JSON和JSONP JSONP和JSON好像啊,他们之间有什么联系吗? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.对于JSON大家应该是很了解了吧,不是很清楚的朋友可以去json.org上了解下,简单易懂. JSONP是JSON with Padding的略称.它是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式). JSO

解决AJAX跨域问题

从AJAX诞生那天起,XMLHttprequest对象不能跨域请求的问题就一直存在.这似乎是一个很经典的问题了.是由于javascript的同源策略(这里不作深入探讨)所导致. 解决的办法,大概有如下几种: 1. 使用中间层过渡的方式(可以理解为"代理"): 中间过渡,很明显,就是在AJAX与不同域的服务器进行通讯的中间加一层过渡,这一层过渡可以是PHP.JSP.c++等任何具备网络通讯功能的语言,由中间层向不同域的服务器进行读取数据的操作.拿asp.net做一个例子,如果需要对不同域

使用JSONP解决Ajax跨域访问问题

前几天,工作上有一新需求,需要前端web页面异步调用后台的Webservice方法返回信息.实现方法有多种,本例采用 jQuery+Ajax,完成后,在本地调试了一切ok,但是部署到服务器上以后就出现问题了,后台服务调用没有响应,怎么回事?代码没怎么改动,唯一修改的地方就是jQuery的ajax方法中的url地址.难道是这里的问题,经过检查和调试,发现原来是同源策略在作怪,我们知道,JavaScript 或jQuery是在Web前端开发中经常使用的动态脚本技术.在JavaScript中,有一个很