10

Ошибка "Кросс-доменные запросы поддерживаются только для HTTP" при загрузке локального файла

47

Я пытаюсь загрузить 3D-модель, которая хранится локально на моем компьютере, в Three.js с помощью JSONLoader. Эта 3D-модель находится в той же директории, что и весь сайт.

Однако при попытке загрузки я получаю ошибку: "Cross origin requests are only supported for HTTP." Не могу понять, в чем причина этой ошибки и как ее исправить.

5 ответ(ов)

0

Сегодня столкнулся с проблемой.

Я написал код, который выглядел вот так:

app.controller('ctrlr', function($scope, $http){
    $http.get('localhost:3000').success(function(data) {
        $scope.stuff = data;
    });
});

...но он должен был выглядеть так:

app.controller('ctrlr', function($scope, $http){
    $http.get('http://localhost:3000').success(function(data) {
        $scope.stuff = data;
    });
});

Единственное отличие заключалось в отсутствии http:// во втором фрагменте кода.

Хотел просто поделиться этой информацией, на случай, если кто-то столкнется с аналогичной проблемой.

0

Чтобы решить проблему с ошибкой, связанной с созданием URL, убедитесь, что вы используете правильный протокол.

Ошибка: localhost:8080

Решение: добавьте http:// или https:// к вашему URL, чтобы он выглядел следующим образом: http://localhost:8080.

Это необходимо, поскольку URL должен начинаться с протокола, чтобы браузер мог корректно определить, как осуществить связь с сервером.

0

Для того чтобы в Android приложении предоставить JavaScript доступ к ресурсам через file:///android_asset/, вам нужно использовать метод setAllowFileAccessFromFileURLs(true) у WebSettings, который вы получите, вызвав getSettings() на вашем WebView. Вот пример кода:

WebView webView = findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true); // Включение JavaScript
webSettings.setAllowFileAccessFromFileURLs(true); // Разрешение доступа к файлам

Обязательно убедитесь, что вы также включили поддержку JavaScript, если это необходимо для вашей задачи.

0

Самый быстрый способ для меня был следующим:

Для пользователей Windows: запустите ваш файл в Firefox — проблема решена.

Если вы хотите воспользоваться Chrome, то самым простым способом было установить Python 3, а затем в командной строке выполнить команду:

python -m http.server

После этого перейдите на http://localhost:8000/ и найдите ваши файлы.

0

Если вы используете старую версию Mozilla Firefox (до 2019 года), она будет работать как ожидается, без каких-либо проблем.

P.S. Удивительно, но старые версии Internet Explorer и Edge тоже работают совершенно нормально.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь