使用jQuery将JSON对象发送到新页面
当用户单击我在页面的google地图上放置的标记时,我试图将JSON数据(人口统计)发送到新页面(在同一目录中)。 我现在正在使用jQueryUIMap插件,marker和click事件工作正常,但正如您在代码中看到的,我正在尝试将JSON对象传输到下一个页面(demo data.html)。我尝试使用$.ajax,但遇到了CORS问题 所以我的问题是,如何将JSON数组发送到下一个页面,然后在下一个页面(demo data.html)加载时检索它,以便将文本放置到适当的位置 PS-我不能使用服务器端脚本 谢谢使用jQuery将JSON对象发送到新页面,jquery,ajax,json,post,get,Jquery,Ajax,Json,Post,Get,当用户单击我在页面的google地图上放置的标记时,我试图将JSON数据(人口统计)发送到新页面(在同一目录中)。 我现在正在使用jQueryUIMap插件,marker和click事件工作正常,但正如您在代码中看到的,我正在尝试将JSON对象传输到下一个页面(demo data.html)。我尝试使用$.ajax,但遇到了CORS问题 所以我的问题是,如何将JSON数组发送到下一个页面,然后在下一个页面(demo data.html)加载时检索它,以便将文本放置到适当的位置 PS-我不能使用服
$(document).bind('pageshow', function () {
var mapdata = { destination: new google.maps.LatLng(59.3327881, 18.064488100000062) };
var demographics =
{
city: 'Stockholm',
county: '',
state: 'Germany',
lat: 59.3327881,
long: 18.064488100000062,
type: 'Standard',
population: 1000000,
housing: 800000,
income: 50000,
landarea: 1000000,
waterarea:10000,
decomissioned: 'No',
militarycodes: ''
};
$('h1').text('Stockholm, Germany');
$('#map_canvas').gmap(
{
'center' : mapdata.destination,
'zoom' : 12
})
.bind('init', function(evt, map) {
$('#map_canvas').gmap('addMarker',
{
'position' : map.getCenter(),
'animation' : google.maps.Animation.DROP
}, function(map, marker) {
$(marker).click(function() {
$.ajax({
url: 'demo-data.html',
type: 'POST',
data: JSON.stringify(demographics),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function(msg) {
alert(msg);
}
});
});
});
});
});
我想到的第一件事是将JSON对象保存在cookie中,并在跳转后在下一页检索它
我想到的第一件事是将JSON对象保存在cookie中,并在跳转后在下一页检索它
我会把一切都通过。我会把一切都通过。你用数据类型jsonp试过吗?@frictionlesspulley没有,我还是不明白json和jsonp之间的区别,所以我想我应该查一下。你用数据类型jsonp试过吗?@frictionlesspulley没有,我仍然不理解json和jsonp之间的区别,所以我想我应该查一下。我想提出一些类似的建议,将json字符串编码为Base64字符串,然后将其传递给另一个页面进行解码。请记住浏览器特定的最大URL长度。如果您传递的数据没有设置可预测的限制,您可能会遇到麻烦。有关IE的详细信息,请参阅。在此引用:
Microsoft Internet Explorer的最大统一资源定位器(URL)长度为2083个字符。Internet Explorer的最大路径长度为2048个字符。此限制适用于POST请求URL和GET请求URL。
对于其他浏览器,我确信他们也将其发布在相应的站点上。@Gavin:编码的说法很好。这也会缩短通过URL发送的内容的长度。@sczizzo和我会使用GET请求来加载我想要加载的页面?@JLaw-如果您对Json的字符串进行Base64编码,则可以通过单个GET参数传递它。在第二个页面上,您可以使用Javascript解码Base64字符串并将其转换回对象。唯一的问题是你不能使用Ajax(CORS-假设它是另一个域上的一个页面),所以你需要打开一个新窗口,或者使用window.location.href
来更改当前页面。我正要提出类似的建议,通过将Json字符串编码为Base64字符串,然后将其传递给另一个页面进行解码。请记住浏览器特定的最大URL长度。如果您传递的数据没有设置可预测的限制,您可能会遇到麻烦。有关IE的详细信息,请参阅。在此引用:Microsoft Internet Explorer的最大统一资源定位器(URL)长度为2083个字符。Internet Explorer的最大路径长度为2048个字符。此限制适用于POST请求URL和GET请求URL。
对于其他浏览器,我确信他们也将其发布在相应的站点上。@Gavin:编码的说法很好。这也会缩短通过URL发送的内容的长度。@sczizzo和我会使用GET请求来加载我想要加载的页面?@JLaw-如果您对Json的字符串进行Base64编码,则可以通过单个GET参数传递它。在第二个页面上,您可以使用Javascript解码Base64字符串并将其转换回对象。唯一的问题是您不能使用Ajax(CORS-假设它是另一个域上的页面),因此您需要打开一个新窗口,或者使用window.location.href
更改当前页面。感谢您的帮助,我想我会使用URL参数,但我以前从未使用过Cookie,这个链接看起来是学习新东西的好地方。我自己也没有太多使用它们,但这个答案似乎让它看起来很简单:)祝你好运!谢谢,我想我会使用URL参数,但我以前从未使用过Cookie,这个链接看起来是学习一些新东西的好地方。我自己也没有太多使用过它们,但这个答案看起来很简单:)祝你好运!