使用jsonp的跨域javascript
我正在使用我网站上的来显示谷歌地图中的.gpx文件。它在普通域中工作得很好,但在使用动态创建的子域时却不行。正如脚本所说,在搜索stackoverflow和google之后,我很确定这是由。在进一步搜索之后,我认为我需要使用jsonp解决这个问题(例如)。然而,我的javascript/jquery很糟糕,所以我不确定jsonp是否能工作,在阅读了一些jsonp教程之后,我仍然不知道如何实现jsonp,以便让gpxviewer在我的子域上工作。我的代码:使用jsonp的跨域javascript,javascript,jquery,jsonp,subdomain,Javascript,Jquery,Jsonp,Subdomain,我正在使用我网站上的来显示谷歌地图中的.gpx文件。它在普通域中工作得很好,但在使用动态创建的子域时却不行。正如脚本所说,在搜索stackoverflow和google之后,我很确定这是由。在进一步搜索之后,我认为我需要使用jsonp解决这个问题(例如)。然而,我的javascript/jquery很糟糕,所以我不确定jsonp是否能工作,在阅读了一些jsonp教程之后,我仍然不知道如何实现jsonp,以便让gpxviewer在我的子域上工作。我的代码: <script type='tex
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'></script>
<script type='text/javascript' src='http://maps.google.com/maps/api/js?sensor=false'></script>
<script src='absolute path to loadgpx.js' type='text/javascript'></script>
<script type='text/javascript'>
function loadGPXFileIntoGoogleMap(map, filename) {
$.ajax({
url: filename,
dataType: 'xml',
success: function (data) {
var parser = new GPXParser(data, map);
parser.setTrackColour('#ff0000'); // Set the track line colour
parser.setTrackWidth(2); // Set the track line width
parser.setMinTrackPointDelta(0.001); // Set the minimum distance between track points
parser.centerAndZoom(data);
parser.addTrackpointsToMap(); // Add the trackpoints
parser.addWaypointsToMap(); // Add the waypoints
}
});
}
$(document).ready(function () {
var mapOptions = {
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map'), mapOptions);
loadGPXFileIntoGoogleMap(map, 'absolute path to .gpx file');
});
</script>
<div id='map' style='width: 553px; height: 280px'></div>
函数loadGPXFileIntoGoogleMap(映射,文件名){
$.ajax({
url:filename,
数据类型:“xml”,
成功:功能(数据){
var parser=新的GPXParser(数据,映射);
parser.setTrackColor('#ff0000');//设置轨迹线颜色
parser.setTrackWidth(2);//设置磁道线宽
parser.setMinTrackPointDelta(0.001);//设置轨迹点之间的最小距离
解析器.centerAndZoom(数据);
parser.addTrackPointToMap();//添加跟踪点
parser.addWayPointToMap();//添加路径点
}
});
}
$(文档).ready(函数(){
变量映射选项={
缩放:8,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById('map'),mapOptions);
loadGPXFileIntoGoogleMap(映射,.gpx文件的绝对路径);
});
任何帮助都将不胜感激。您必须使用JSONP文件的URL而不是GPX文件(并告诉jQuery您希望使用JSONP而不是XML)。