JSON请求帮助

时间:2011-07-27 14:59:14

标签: javascript json xmlhttprequest

首先,如果Google Places API允许JSONP请求,我将使用jQuery执行此操作,而是使用标准XMLHttpRequest:

function load() {
    var req = new XMLHttpRequest();
    req.open('GET', 'https://maps.googleapis.com/maps/api/place/details/json?reference=CnRhAAAARMUGgu2CeASdhvnbS40Y5y5wwMIqXKfL-n90TSsPvtkdYinuMQfA2gZTjFGuQ85AMx8HTV7axABS7XQgFKyzudGd7JgAeY0iFAUsG5Up64R5LviFkKMMAc2yhrZ1lTh9GqcYCOhfk2b7k8RPGAaPxBIQDRhqoKjsWjPJhSb_6u2tIxoUsGJsEjYhdRiKIo6eow2CQFw5W58&sensor=true&key=xxxxxxxxxxxxx', false);
    req.send(null);

    if (req.status == 200) {
      dump(req.responseText);
    }
}

我遇到跨域原始安全问题,但我真正想问的是,这是从Google Places API请求JSON的最简单方法吗?

我正在寻找最简单的方法,而无需设置本地代理来处理跨域原始内容。

或者是否有另一个使用常规JSON请求的javascript工具包?

1 个答案:

答案 0 :(得分:1)

  

如果Google Places API允许JSONP请求,我会使用jQuery执行此操作。   是否有另一个使用常规JSON请求的javascript工具包?

jQuery不仅限于JSONP。

function load() {
    var url = 'https://maps.googleapis.com/maps/api/place/details/json?reference=CnRhAAAARMUGgu2CeASdhvnbS40Y5y5wwMIqXKfL-n90TSsPvtkdYinuMQfA2gZTjFGuQ85AMx8HTV7axABS7XQgFKyzudGd7JgAeY0iFAUsG5Up64R5LviFkKMMAc2yhrZ1lTh9GqcYCOhfk2b7k8RPGAaPxBIQDRhqoKjsWjPJhSb_6u2tIxoUsGJsEjYhdRiKIo6eow2CQFw5W58&sensor=true&key=xxxxxxxxxxxxx';
    $.ajax(url, {
       async:   false,
       success: function(data, textStatus, jqXHR) {
           dump(data);
       }
    });
}

Note that

  

跨域请求和dataType:“jsonp”请求不支持同步操作

因此您可能必须切换到异步请求。