关于javascript:交叉源请求仅支持协议方案:http

Cross origin requests are only supported for protocol schemes: http

这是一个一般的JavaScript问题,但它会在此代码中弹出,它使用Splunk JavaScript SDK ...错误是:

XMLHttpRequest无法加载file:/// C:/ proxy / services / auth / login?output_mode = json。 交叉源请求仅支持协议方案:http,data,chrome,chrome-extension,https,chrome-extension-resource。
jquery.min.js:4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script type="text/javascript" src="json2.js">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
<script type="text/javascript" src="prettify.js">
<script type="text/javascript" src="bootstrap.tabs.js">
<script type="text/javascript" src="bootstrap.dropdown.js">
<script type="text/javascript" src="jquery.placeholder.min.js">
<script type="text/javascript" src="splunk.js">

<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();
    });
});

</body>
</html>


我同意Charlietfl。 如果你有apache和/或IIS,它应该是一个非常快速的测试来验证这是修复它。

如果您不熟悉Web服务器,请不要担心像Xampp这样的应用程序会从一个可执行文件中设置整个LAMP堆栈。

由于您正在对自己的服务器进行身份验证,因此您可能(不)遇到此问题,但是我在运行本地RESTful应用程序时遇到了问题,并且在后端使用您正在使用的内容时我需要执行以下操作:setHeader('Access -Control-Allow-Origin','*'); 到我的回复标题。

显然,如果你决定创建某种企业级Web服务,你不想要这样的东西,但对于本地测试,这通常会解决我遇到的随机CORS问题。

祝你的网络应用好运!