解决Ajax跨域问题:Origin xx is not allowed by Access-Control-Allow-Origin.
本文发布于 11 年前, 内容可能已经过时或失效!
今天遇到一个Ajax跨域问题,记录之。 ```html <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 <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:* ```php header("Access-Control-Allow-Origin: *"); # 跨域处理 ``` 问题就解决了。