2016-08-19 4 views
0

Я пытаюсь использовать сторонний Api, используя javascript и прокси-сервер PHP, как видно из this Tread, я могу использовать прокси, но ответ, который я получаю, всегда:Ajax Cross-domain Php proxy 403 error

Не удалось загрузить ресурс: сервер ответил со статусом 403 (Forbidden) http://MYDOMAIN.co/php/ba-simple-proxy.php?url=http://jsonplaceholder.typicode.com/posts&_=1471620448707

мой яваскрипта код:

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 is hostgator-

+0

Ошибка http 403 может быть вызвана многими причинами, вы можете увидеть больше [здесь] (https://en.wikipedia.org/wiki/HTTP_403). Проблема заключается не в вашем скрипте 'getLocationSimple', а, вероятно, в' php/ba-simple-proxy.php'. –

ответ

0

Это как-то связано с политикой кросс-домена. Вы не можете выполнять ajax-запросы в другом домене из-за соображений безопасности, потому что злоумышленная атака также может потребовать выполнить запрос через ajax, чтобы загрузить дополнительный скрипт, чтобы взломать вас.

Несмотря на то, что Википедия, возможно, не самая лучшая ссылка для предоставления, это даст вам представление.

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

+0

спасибо! Я знаю об этом, поэтому я пытаюсь использовать серверное соединение, следовательно, прокси PHP, приветствует! – randomguy04

1

Давайте попробуем, как только этот кусок кода

function getLocationSimple(){ 
      $.ajax({ 
       type: 'POST', 
       dataType: 'jsonp', 
       url: "http://jsonplaceholder.typicode.com/posts" 
      }) .done(function(data) { 
       console.log(data); 
       }); 
     } 

это происходит из-за перекрестного домена политики. Доступ к кросс-сайтам недоступен на стороне api. Поэтому мы можем использовать dataType: 'jsonp' для решения этой проблемы.

+0

отлично подходит для примера, который я выбрал !, однако я столкнулся с новой ошибкой при использовании этого с моим реальным провайдером -> Отказался от выполнения сценария из htttp: // XXXXX, потому что его тип MIME ('application/json') не является исполняемым, и включена строгая проверка типа MIME. есть ли способ обойти это? – randomguy04

+0

http://stackoverflow.com/questions/24528211/refused-to-execute-script-from-because-its-mime-type-application-json-is –