Ajax跨域Php代理403错误

时间:2016-08-19 15:33:19

标签: javascript php proxy http-status-code-403

我正在尝试使用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 -

2 个答案:

答案 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执行请求以加载其他脚本来破解您。

尽管维基百科可能不是提供的最佳链接,但它会给你一个想法。

https://en.wikipedia.org/wiki/Same-origin_policy