我正在尝试使用javascript和PHP代理来使用第三方Api,如this Tread中所示,我能够使用代理,但我得到的响应总是:
无法加载资源:服务器响应状态为403(禁止) http://MYDOMAIN.co/php/ba-simple-proxy.php?url=http://jsonplaceholder.typicode.com/posts&_=1471620448707
我的javascript代码是:
function getLocationSimple(){
var proxy = 'php/ba-simple-proxy.php',
url = proxy + '?url=' + 'http://jsonplaceholder.typicode.com/posts';
console.log(url);
// Make JSON request.
$.getJSON( url, function(data){
console.log(data);
});
}
我认为它是关于第三方服务器的权限,所以我决定将其更改为开放的 - http://jsonplaceholder.typicode.com/posts - ,但我仍然得到相同的错误,它可能是我自己的服务器中的权限? -my host是hostgator -
答案 0 :(得分:1)
让我们尝试一下这段代码
function getLocationSimple(){
$.ajax({
type: 'POST',
dataType: 'jsonp',
url: "http://jsonplaceholder.typicode.com/posts"
}) .done(function( data ) {
console.log( data);
});
}
这是由于跨域策略而发生的。 api方面不提供跨站点访问。因此,我们可以使用dataType: 'jsonp'
来解决此问题
答案 1 :(得分:0)
这与跨域策略有关。由于安全原因,您无法向其他域执行ajax请求,因为恶意攻击还可能涉及通过ajax执行请求以加载其他脚本来破解您。
尽管维基百科可能不是提供的最佳链接,但它会给你一个想法。