Здравствуйте. Дошел в учебнике по js до node.js и есть первая задача где должен загружаться файл json с сервера но мне выдает такую ошибку: index.html:34 XMLHttpRequest cannot load file:///C:/Users/Horchynskyi/phones-async/phones.json. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https. Почитал коментарии многие пишут что работает вроде как только на мозиле почему так? код сервера: и код html:
var http = require('http');
var url = require('url');
var querystring = require('querystring');
var static = require('node-static');
var file = new static.Server('.', {
cache: 0
});
function accept(req, res) {
if (req.url == '/phones.json') {
// искусственная задержка для наглядности
setTimeout(function() {
file.serve(req, res);
}, 2000);
} else {
file.serve(req, res);
}
}
// ------ запустить сервер -------
if (!module.parent) {
http.createServer(accept).listen(8080);
} else {
exports.accept = accept;
}
в html:
function loadPhones() {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'phones.json', true);
xhr.onreadystatechange = function() {
if (xhr.readyState != 4) return;
button.innerHTML = 'Готово!';
if (xhr.status != 200) {
// обработать ошибку
alert(xhr.status + ': ' + xhr.statusText);
} else {
// вывести результат
alert(xhr.responseText);
}
}
xhr.send();
button.innerHTML = 'Загружаю...';
button.disabled = true;
}
Вероятно ваша клиентская сторона открыта просто как html файл на диске в папке C:/Users/Horchynskyi/phones-async/index.html
, потому ссылка формируется на файл (file:///C:/Users/Horchynskyi/phones-async/phones.json
), а не по протоколу HTTP . Для того чтобы работало, либо открывайте свой клиент, загружая страницу index.html
с того сервера, где лежит phones.json
, либо укажите полный путь с доменом и портом в этом месте xhr.open('GET', 'phones.json', true)
-> xhr.open('GET', 'http://localhost:8080/phones.json', true)
. Плюс нужно установить заголовки на сервере, который файл отдает Access-Control-Allow-Origin: *
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый вечерПодскажите, пожалуйста, я новичок и пытаюсь написать алгоритм преобразования арабских чисел в римские
Вы забыли вызвать функцию guessingНужно добавить строчку
Подскажите пожалуйста, есть ли библиотека подобная Cheerio только что бы работала на клиенте?
В функцию на обработку поступает текст, к примеру вот такой: