PHP-Javascript:跨域JSON请求问题
作者:互联网
我正在尝试从Google Places API请求JSON,但是在首先包含以下内容后,仍然出现跨域请求错误:
<?php
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Methods: POST, GET");
header("Access-Control-Allow-Headers: x-requested-with");
?>
我正在使用的JSON请求是标准的JQuery:
function load() {
var url = 'https://maps.googleapis.com/maps/api/place/details/json?reference=CnRhAAAARMUGgu2CeASdhvnbS40Y5y5wwMIqXKfL-n90TSsPvtkdYinuMQfA2gZTjFGuQ85AMx8HTV7axABS7XQgFKyzudGd7JgAeY0iFAUsG5Up64R5LviFkKMMAc2yhrZ1lTh9GqcYCOhfk2b7k8RPGAaPxBIQDRhqoKjsWjPJhSb_6u2tIxoUsGJsEjYhdRiKIo6eow2CQFw5W58&sensor=true&key=xxxxxxxxxxxxxx';
$.ajax(url, {
async: true,
success: function(data, textStatus, jqXHR) {
dump(data);
}
});
}
我会改用JSONP查询,但是Google Places API不支持JSONP …我该如何解决?使用代理服务器?我不确定该怎么做或我做错了什么.
解决方法:
您从中请求数据的URL必须授予具有访问控制标头的权限.如果远程起源可以授予其自身权限,则将击败同一起源策略的对象!
如果您使用的API不提供JSON-P API,并且本身未设置访问控制标头,则需要使用代理.您可以自己运行,也可以第三方运行,将其转换为JSON-P(例如YQL).
标签:cross-domain,json,javascript,php 来源: https://codeday.me/bug/20191102/1990864.html