使用jQuery检索远程JSON内容

时间:2013-05-09 22:09:05

标签: php jquery json

我遇到了将Json转换为Jquery脚本的问题。

位于http://myserver.com/script.php的PHP脚本通过回显JSON返回:

{"locations":[{"name":18492554,"lat":"12345","long":"234"},{"name":18492553,"lat":"4567","long":"234},{"name":18492555,"lat":"2234","long":"234}]}

我想将这一点描绘成我的Jqueru脚本,如:

(function() {
    window.onload = function() {

        // Creating a new map
        var map = new google.maps.Map(document.getElementById("map"), {
          center: new google.maps.LatLng(41.6, -0.88),
          zoom: 12,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        });


        ///////////////////// GET the JSON data   ///////////////////
var json =   // ???????



        // Creating a global infoWindow object that will be reused by all markers
        var infoWindow = new google.maps.InfoWindow();

        // Looping through the JSON data
        for (var i = 0, length = json.length; i < length; i++) {

                var data = json[i],
                latLng = new google.maps.LatLng(data.lat, data.long);

            // Creating a marker and putting it on the map
            //var iconBase = 'https://dea-srl.net/domenico/traking/js/';

            var iconBase = 'https://maps.google.com/mapfiles/kml/shapes/';
            var marker = new google.maps.Marker({
                position: latLng,
                map: map,
                title: data.nombre,
                icon: iconBase + 'schools_maps.png'
                });

            // Creating a closure to retain the correct data, notice how I pass the current data in the loop into the closure (marker, data)
            (function(marker, data) {

                // Attaching a click event to the current marker
                google.maps.event.addListener(marker, "click", function(e) {
                    infoWindow.setContent(data.nombre);
                    infoWindow.open(map, marker);
                });


            })(marker, data);

        }

    }

})();

我的问题是让Json进入de jquery。有可能吗?

我尝试使用get方法:

$.get(" http://myserver.com/script.php"); 

但它不起作用。

有什么想法吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

你的意思不起作用?你有什么错误?

您使用的是done功能吗?

$.get(" http://myserver.com/script.php").done(function(data) {
  console.log(data);
});

或者您可以直接使用$.getJSON功能。

答案 1 :(得分:1)

$.getJSON('http://myserver.com/script.php', function(data) {
  var json = data;
});

加载json数据。 如果还有其他问题,您可以更准确一些。