Ошибка 403 при использовании MediaWiki REST API для сравнения версийJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Гость
 Ошибка 403 при использовании MediaWiki REST API для сравнения версий

Сообщение Гость »


Я создаю для себя простой инструмент, который будет отображать разницу между ревизиями в Википедии, используя (путем отправки запроса к WikiMedia REST API, как описано в документации API здесь: Reference#Compare редакции).

Вот пример кода, который извлекает нужный мне JSON:

const url = "https://en.wikipedia.org/w/rest.php/v1/ ... 1157658266"; let json = await fetch(url).then(resp=>{ return resp.json(); }); консоль.log(JSON) Этот код работает в локальном REPL узла, или аналогичным образом он работает, если я направляю свой браузер на и использую консоль в браузере для запуска кода. Аналогично, я могу просто свернуть этот URL-адрес и вывести данные на свой терминал.

Однако я получаю ошибку 403, если использую тот же код на своем сайте (или, что то же самое, если я использую консоль в браузере для запуска кода при указании на другой сайт). чем википедия). Вот ошибка, которую я получаю:

GET https://en.wikipedia.org/w/rest.php/v1/ ... 1157658266 403

{ошибка: 'rest-cross-origin-anon-write', httpCode: 403, httpReason: 'Запрещено'} Заголовок ошибки, кажется, указывает на то, что мне запрещен доступ, поскольку я пытаюсь писать с сайта с перекрестным происхождением, но запрос, который я делаю, является простым запросом только для чтения, не так ли? Согласно справочной странице, указанной выше, ошибка 403 возвращается, когда «Редакция не является общедоступной». Однако он явно общедоступен, поскольку я могу получить к нему доступ из любого браузера или curl без аутентификации.

[Обратите внимание: если я сделаю какие-либо другие запросы с использованием этого API, например, получу сведения об одной ревизии (как в документации здесь: Reference#Get_revision) с помощью URL https://en.wikipedia.org/w /rest.php/v1/revision/1157633768/bare, я не получаю эту ошибку. Это только при запросе маршрута {from}/compare/{to}.]

Я пробовал добавить ?origin=* в URL-адрес как предлагает сайт MediaWiki Action API здесь. Я знаю, что это другой API, но попробовать все же стоило.

Я мало что знаю о запросах между источниками, но мне кажется, что это должно быть просто. Я не пытаюсь делать ничего, требующего аутентификации.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка проверки работоспособности AWS Apprunner при использовании Pytorch. Но контейнер хорошо работает на локальном
    Гость » » в форуме Python
    0 Ответы
    0 Просмотры
    Последнее сообщение Гость
  • Невозможно подключиться к веб-серверу при использовании префикса маршрута в URL-адресе.
    Гость » » в форуме C#
    0 Ответы
    1 Просмотры
    Последнее сообщение Гость
  • Как удалить неправильные поля при использовании Isotope.js для макета каменной кладки?
    Гость » » в форуме Javascript
    0 Ответы
    0 Просмотры
    Последнее сообщение Гость
  • *1 ошибка подключения() (113: нет маршрута к хосту)
    Гость » » в форуме Php
    0 Ответы
    0 Просмотры
    Последнее сообщение Гость
  • Почему возникает ошибка сегментации (движок v8)?
    Гость » » в форуме C++
    0 Ответы
    0 Просмотры
    Последнее сообщение Гость

Вернуться в «Javascript»