Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   запрос json возвращает status 0 (https://javascript.ru/forum/events/76920-zapros-json-vozvrashhaet-status-0-a.html)

OnLik 27.02.2019 12:53

запрос json возвращает status 0
 
Добрый день пишу дипломную работу необходимо реализовать подключение к api
Для теста пытаюсь отправить запрос:
<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
</head>
<body>
  <button onclick="load()" id="button">Загрузить </button>
  <script>
    function load() {
      var xhr = new XMLHttpRequest();
      xhr.open('GET', 'https://fapi.iisis.ru/fapi/v2/manufacturerList?mfd=merc', true);
      xhr.send();
      xhr.onreadystatechange = function() {
        if (xhr.readyState != 4) return;     
        alert(xhr.status + ': ' + xhr.statusText + ': ' +xhr.responseText);
    }
  }
  </script>
</body>
</html>

Но запрос возвращает только tatus 0.
Когда пробую отправить запрос сюда всё работает отлично.
Ещё заметка когда проверяю тут
Ели установлена галка показывать код страницы то работает, если снять галку то нет.

Nexus 27.02.2019 12:57

https://learn.javascript.ru/xhr-crossdomain

OnLik 27.02.2019 13:22

Цитата:

Сообщение от Nexus (Сообщение 504167)

Спасибо за такой скорый ответ, но Всё равно возвращается тот же результат.
Вот так вот попробовал:
<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
</head>
<body>
  <button onclick="load()" id="button">Загрузить</button>
  <script>
    function load() {
      var XHR = ("onreadystatechange" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest;
      var xhr = new XHR();
      xhr.open('GET', 'https://fapi.iisis.ru/fapi/v2/manufacturerList?mfd=merc', true);
      xhr.send();
      xhr.onreadystatechange = function() {
        if (xhr.readyState != 4) return;
        alert(xhr.status + ': ' + xhr.statusText + ': ' +xhr.responseText);
    }
  }
  </script>

</body>

</html>

Nexus 27.02.2019 13:26

OnLik, статью прочитайте, а не код оттуда копируйте.

OnLik 27.02.2019 15:05

Nexus, Я прочитал статью, потом ещё раз перечитал. Я понимаю что сервер в ответ не отправляет мне в заголовке 'Access-Control-Allow-Origin' и по этому браузер считает что сервер не дал ему доступ.
хотя я и использую простой вариант запроса (GET).
И тут же возникает вопрос как это можно обойти, ведь на вот этом сервисе всё работает bertal.ru. Хотя ему возвращён вот такой заголовок:
HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Wed, 27 Feb 2019 10:49:39 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 689664
Connection: close
Cache-control: private, max-age=0

Nexus 27.02.2019 15:18

Цитата:

Сообщение от OnLik
ведь на вот этом сервисе всё работает

Запрос отправляет не клиент, а сервер, поэтому все работает.
Хотите обойти - проксируйте свой запрос.

OnLik 27.02.2019 15:49

Nexus,
Спасибо, буду дальше разбираться


Часовой пояс GMT +3, время: 13:24.