Запросы между источниками поддерживаются только для схем протоколов: http

Это общий вопрос JavaScript, но он появляется в этом коде, который использует Splunk JavaScript SDK... ошибка:

XMLHttpRequest не может загрузить файл:///C:/proxy/services/auth/login? Output_mode=json. Запросы между источниками поддерживаются только для схем протоколов: http, data, chrome, chrome-extension, https, chrome-extension-resource. jquery.min.js:4

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script type="text/javascript" src="json2.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript" src="prettify.js"></script>
<script type="text/javascript" src="bootstrap.tabs.js"></script>
<script type="text/javascript" src="bootstrap.dropdown.js"></script>
<script type="text/javascript" src="jquery.placeholder.min.js"></script>
<script type="text/javascript" src="splunk.js"></script>

<script type="text/javascript" charset="utf-8">
console.log('a');
var http = new splunkjs.ProxyHttp("/proxy");
var service = new splunkjs.Service(http, {
    username: "admin",
    password: "Moravac123223",
    scheme: "https",
    host: "localhost",
    port: "8089",
    version: "5.0"
});
 console.log('b');
// First, we log in
service.login(function(err, success) {
    // We check for both errors in the connection as well
    // as if the login itself failed.
    if (err || !success) {
        console.log("Login failure. Please check your server hostname and authentication credentials.");
        done(err || "Login failed");
        return;
    } 

    // Now that we're logged in, let's get a listing of all the apps.
    service.apps().fetch(function(err, apps) {
        if (err) {
            console.log("There was an error retrieving the list of applications:", err);
            done(err);
            return;
        }

        var appsList = apps.list();
        console.log("Applications:");
        for(var i = 0; i < appsList.length; i++) {
            var app = appsList[i];
            console.log("  App " + i + ": " + app.name);
        } 

        done();
    });
});
</script>
</body>
</html>

1 ответ

Я согласен с Charlietfl. Если у вас есть Apache и / или IIS, это должен быть довольно быстрый тест, чтобы убедиться, что это исправило это.

Если вы новичок на веб-сервере в целом, не бойтесь, что у них есть приложения, такие как Xampp, которые настраивают весь ваш стек LAMP из одного исполняемого файла.

Поскольку вы проходите аутентификацию на своем собственном сервере, вы можете (не) столкнуться с этим, но у меня возникли проблемы с запуском локальных RESTful-приложений и в ожидании того, что вы используете на сервере, мне нужно было сделать что-то вроде этого: setHeader('Access-Control-Allow-Origin', '*'); в заголовок моего ответа.

Очевидно, что вам не нужно что-то подобное, если вы решите создать какой-то веб-сервис корпоративного класса, но для локального тестирования, которое обычно решает случайные проблемы с CORS, с которыми я столкнулся.

Удачи в вашем веб-приложении!

Другие вопросы по тегам