欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

json 跨域 有大用 有大用

shiping1 的头像

今天一个Ajax跨域问题,纠结我半天,记录之。 

<html> 
<head>
 <title>title</title>
 <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
 <script> 
$.ajax({ 
url:"http://map.yanue.net/gpsApi.php?lat=22.502412986242&lng=113.93832783228", type:'GET', success: function(data)
{ $('body').append( "Name: " + data ); } }); 
</script>
 </head>
 <body> 
测试Ajax跨域问题 
</body>
 </html>

没有结果,chrome用F12 下查看错误 得知:XMLHttpRequest cannot load http://map.yanue.net/gpsApi.php?lat=22.502412986242&lng=113.93832783228. Origin http://localhost is not allowed by Access-Control-Allow-Origin. AJAX跨域问题产生。

搜了好久,得知解决方案:

一:使用jsonp格式, 如jquery中ajax请求参数   dataType:'JSONP'。

<html> 
<head> 
<title>title</title>
 <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> 
<script> 
$.ajax({
 url:"http://map.yanue.net/gpsApi.php?lat=22.502412986242&lng=113.93832783228",
 type:'GET', 
dataType:'JSONP',
 success: function(data){ $('body').append( "Name: " + data ); }
 }); 
</script>
 </head>
 <body> 测试Ajax跨域问题 </body> 
</html>

二,server端加上header设为 Access-Control-Allow-Origin:*

header("Access-Control-Allow-Origin: *"); # 跨域处理

问题就解决了。

来自 http://yanue.net/post-130.html

普通分类: