你的位置:首页 > 软件开发 > Java > 关于AJAX的跨域问题

关于AJAX的跨域问题

发布时间:2016-02-18 21:00:16
最近过年的这几天在做毕业设计的时候遇到了一个关于AJAX的跨域问题,本来我是想要用一下聚合数据平台提供的天气预报的接口的,然后做一个当地的天气情况展示,但是在使用AJAX的时候,被告知出现错误了。这是由于浏览器的同源策略引起的,那么什么是同源策略呢,同源策略就是在不同域下请求另一 ...

关于AJAX的跨域问题

最近过年的这几天在做毕业设计的时候遇到了一个关于AJAX的跨域问题,本来我是想要用一下聚合数据平台提供的天气预报的接口的,然后做一个当地的天气情况展示,但是在使用AJAX的时候,被告知出现错误了。

关于AJAX的跨域问题

这是由于浏览器的同源策略引起的,那么什么是同源策略呢,同源策略就是在不同域下请求另一个页面中的数据时,这是不被允许的。也就是会出现上面的问题。

那么什么是不同域呢。一个域名地址的组成有以下几个部分:协议、子域名、主域名、端口号、请求资源地址。

例如:http://www.abc.com:8080/server.php/这个域名地址。

这里的http://就是协议。

www就是子域名

abc.com就是主域名

8080就是端口号

server.php就是请求资源地址

只要以上的协议、子域名、主域名、端口号有一个不同,就算做不同域。不同域之间的互相请求资源就是跨域请求。那么怎么来解决这个跨域问题呢?,这里我收集了三个方法,分别是利用代理、jsonp、xhr2。

1、使用代理:因为我这里使用的后台语言是php,所以我这里就只是找到了php相关的代码。

<?php  header('Content-type:application/json;charset=utf-8');  function GetCurl($url){    $curl = curl_init();    curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);    curl_setopt($curl,CURLOPT_URL, $url);    curl_setopt($curl,CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);    $resp = curl_exec($curl);    curl_close($curl);    return $resp;  }  $resp = GetCurl("http://op.juhe.cn/onebox/weather/query?cityname=成都&key=ecf1aeb200fe2eb300a68a4e5a1a0d46");  $resp = json_decode($resp,true);  echo json_encode($resp);?>

原标题:关于AJAX的跨域问题

关键词:ajax

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。