ajax跨域问题的解决办法

ajax跨域问题的解决办法


2024年6月18日发(作者:)

最近公司内部的architecture组正在热烈讨论ajax,最后难免会谈到如何跨域

这个问题,因为从ajax诞生那天起,xmlHttprequest对象在firefox下不能跨

域请求的问题就一直存在,等待浏览器们去解决这个问题显然不太现实,聪明的

web开发人员们早就想了一系列的方法来解决这个问题,下面列举几个比较不错

的方法:

1. 使用中间层过渡的方式:

中间过渡,很明显,就是在ajax与不同域的服务器进行通讯的中间加一层过渡,

这一层过渡可以是php、jsp、c++等任何具备网络通讯功能的语言,由中间层向

不同域的服务器进行读取数据的操作。拿php做一个例子,如果需要对不同域的

某一个php进行通讯,现在客户端的xmlhttprequest先query本域的一个php,

然后由本域的这个php去和不同域的php进行通讯,然后由本域的php输出

response;

2. 使用

3.

20.

21.

22.

23.

其中的代码是

1.

2. echo "var param = ''";

3. ?>

最后的运行结果是,当你点击那个button,它会出现一个内容

为””的对话框。

这个方法又叫做ajaj或者ajax without xmlHttprequest,把x换成了j,是

因为使用了

在服务器b上写一个文件,内容如下:

$jsonpCallback=$_GET['jsonpCallback'];

$id=$_GET['id'];

$title=$_GET[title];

$str = "{id:'".$id."',title:'".$title."'}";

echo $jsonpCallback."(".$str.");";

?>

这样即可实现跨域操作,此方式需要注意的是:

(1) a中使用$.getJSON这个方法中必须要加上jsonpCallback这个参数,即

回调函数名

(2) b中返回的必须是回调函数

(3) b中返回的回调函数中的参数必须是json对象或是json数组


发布者:admin,转转请注明出处:http://www.yc00.com/web/1718715414a2752067.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信