使用jQuery将JSON对象发送到新页面

使用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-我不能使用服

当用户单击我在页面的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,这个链接看起来是学习一些新东西的好地方。我自己也没有太多使用过它们,但这个答案看起来很简单:)祝你好运!