Так что этот вопрос мысль был бы непростым. Однако после целого часа поиска документации по JavaScript и node js и других вопросов на этом сайте я нашел только то, что связано с той же политикой происхождения.
Я хочу сделать простой запрос по URL-адресу и прочитать его html / исходный код. Это делается для запроса вики и возврата верхней ссылки из результатов поиска. Я могу справиться с html самостоятельно, но я совершенно ошеломлен относительно того, как получить html. Я знаю, как это очень легко сделать с сокетом Lua в одной строке, именно так я и сделал это при создании Twitch-бота, но теперь, когда я адаптирую его к разногласиям, я кодирую его на JavaScript, и я не так хорошо разбирается в JavaScript.
Кто-нибудь знает, как это сделать?
Мой текущий код:
function SearchWiki(query) {
console.info("I was called, I guess")
var options = {
path: encodeURI(query),
method: "GET"
}
var request = http.request("http://pm-challenge.wikia.com/wiki/Special:Search?search = ", options, function (res) {
var data = '';
res.on('data', function (chunk) {
data += chunk;
});
res.on('end', function () {
console.info(data);
});
});
request.on('error', function (e) {
console.info(e.message);
});
request.end();
}
Если вы хотите иметь возможность запрашивать его из браузера, это действительно будет зависеть от ваших требований. В современном Chrome вы можете использовать fetch с опциями no-cors. Если вам необходимо поддерживать много типов браузеров, лучшим вариантом будет создание конечной точки для прокси-запроса. Тогда вы можете вернуть все, что захотите, и вам не придется иметь дело с браузерами.
Посмотрев на эти ссылки, спасибо, ребята, скоро напишу.
@Austio - вопрос помечен как node.js, и браузеры не упоминаются. Даже если бы вопрос был о браузерах, если бы использовалась опция no-cors, то он не смог бы прочитать ответ! В этом суть no-cors (молча терпеть неудачу в том, для чего требуется разрешение CORS, вместо того, чтобы выдавать ошибку).
@AdamH Когда я использую код в ответе на этот вопрос, я получаю следующий результат: Moved to <a href = "http://pm-challenge.wikia.com/wiki/Special:Search?search = ">http://pm-challenge.wikia.com/wiki/Special:Search?search=</a>
Похоже, у вас есть код 301 (перемещен), попробуйте использовать URL-адрес, который они предлагают.
@AdamH Понятно. Хорошо, я изменил свой URL-адрес и просто сделал путь в параметрах поисковым запросом. Моя проблема сейчас - это 400 неверных запросов. Как мне это исправить?
@warspyking - У нас нет возможности узнать, какой запрос вы отправляете или какой сервер, на который вы отправляете запрос, считает плохим.
@warspyking исправить запрос?
Я отредактировал код в своем вопросе @AdamH
Скорее всего, вы запрашиваете параметр, попробуйте использовать encodeURI ()
@AdamH Та же проблема
Что в параметре запроса?
@AdamH "pre-hooktail %% 20pit"
Взгляните сюда, чтобы увидеть, что вы делаете не так с параметрами и передачей URL: nodejs.org/api/http.html#http_http_request_options_callback
Позвольте нам продолжить обсуждение в чате.
функция обратного вызова запроса принимает 3 параметра. Третий параметр - это тело HTML. npmjs.com/package/request



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)

