HTTP-клиент JS-IPFS через браузер не работает из-за проблемы с CORS - PullRequest
1 голос
/ 08 апреля 2019

Я провожу некоторые исследования и тестирование на основе примера браузера js-ipfs-http-client здесь

Когда я пытаюсь получить ответ от IPFS, я получаю следующее предупреждениеиз консоли Firefox:

Блокирован перекрестный запрос: та же политика происхождения запрещает чтение удаленного ресурса на http://localhost:5001/api/v0/add?wrapWithDirectory=true&progress=true&wrap-with-directory=true&stream-channels=true. (причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»).

Я уже пробовал рекомендованное (грязное) исправление, в котором вы меняете конфигурацию IPFS из терминала:

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin "[\"*\"]"

Но, похоже, даже это не работает.Я начал изучать возможность использования пользовательских заголовков, как упоминалось здесь

Не повезло.

Я настроил IPFS следующим образом: const ipfsClient = require ('ipfs-http-client«);var ipfs = ipfsClient ('localhost', '5001');

И затем, как только я получаю какой-то файл от пользователя, я пытаюсь сохранить его в IPFS следующим образом:

function saveToIpfsWithFilename (file) 
{
    console.log('running save');

    let ipfsId;
    const fileStream = fileReaderPullStream(file);
    const fileDetails = 
    {
      path: file.name,
      content: fileStream
    };

    const options =
    {
      wrapWithDirectory: true,
      progress: (prog) => console.log(`received: ${prog}`)
    };

    ipfs.add(fileDetails, options).then((response) => 
    {
        console.log(response)
        // CID of wrapping directory is returned last
        ipfsId = response[response.length - 1].hash
        console.log(ipfsId)
    }).catch((err) => {
        console.error(err)
      });
}
...