解决Ajax跨域问题:Origin xx is not allowed by Access-Control
发布时间:2020-12-16 02:09:14 所属栏目:百科 来源:网络整理
导读:今天一个Ajax跨域问题,代码如下: htmlhead titletitle/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.502412986242lng=113.93832783228",type:'GET',success: funct
今天一个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跨域问题产生。 什么引起了ajax不能跨域请求的问题? ajax本身实际上是通过XMLHttpRequest对象来进行数据的交互,而浏览器出于安全考虑,不允许js代码进行跨域操作,所以会警告。 解决方案如下: 一、使用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",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: *"); # 跨域处理问题就解决了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |