解决Ajax跨域问题:Origin xx is not allowed by Access-Control-Allow-Origin

本文介绍了如何解决Ajax跨域问题,提供了两种有效方案:一是通过使用JSONP方式绕过同源策略限制;二是通过服务器端设置Access-Control-Allow-Origin响应头实现跨域资源共享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  
  1. <html>
  2. <head>
  3.     <title>title</title>
  4.     <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
  5.     <script>
  6.         $.ajax({
  7.             url:"http://map.yanue.net/gpsApi.php?lat=22.502412986242&lng=113.93832783228",
  8.             type:'GET',
  9.             success: function(data){
  10.                 $('body').append( "Name: " + data );
  11.             }
  12.         });
  13.     </script>
  14. </head>
  15. <body>
  16.     测试Ajax跨域问题
  17. </body>
  18. </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'。

  
  1. <html>
  2. <head>
  3.     <title>title</title>
  4.     <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
  5.     <script>
  6.         $.ajax({
  7.             url:"http://map.yanue.net/gpsApi.php?lat=22.502412986242&lng=113.93832783228",
  8.             type:'GET',
  9.             dataType:'JSONP',
  10.             success: function(data){
  11.                 $('body').append( "Name: " + data );
  12.             }
  13.         });
  14.     </script>
  15. </head>
  16. <body>
  17. 测试Ajax跨域问题
  18. </body>
  19. </html>

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


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

问题就解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值