首先,如果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工具包?
答案 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);
}
});
}
跨域请求和dataType:“jsonp”请求不支持同步操作
因此您可能必须切换到异步请求。