这个问题和其他问题类似;然而,有一个差异使得它为什么不起作用非常令人困惑。
我的 JavaScript 正在调用 6 个 json 文件,并且所有文件都工作正常。在 Node.JS 中,我设置了 cors 和 headers,如下所示:
var fs = require('fs');
var http = require("https");
var express = require('express');
var app = express();
var path = require('path');
var http = require("http");
var url = require("url");
var req = require('request')
var pem = require('pem');
var cors = require("cors");
app.use(express.static(path.join(__dirname, '../')));
app.listen(process.env.PORT || 8080);
app.options('*', cors());
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested- With, Content-Type, Accept");
next();
});
app.all('/posts', function(req, res){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
});
app.get('/', function (req, res) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.writeHead(200, {'Content-Type': 'text/plain'});
contents = fs.readFileSync("sliderImages.json", "utf8");
console.log(path.join(__dirname, '/sliderImages.json'));
res.end(contents);
});
所有 6 个 json 文件都是由 Node JS 从绝对 URL 路径中获取的。我昨天又做了 2 个,一切正常。然而,今天我做了一个并以相同的方式实现并收到以下错误:
请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“null”。
我以相同的方式实现每个,例如:
var base_url = 'http://127.0.0.1:8080';
mainInformationTop();
function mainInformationTop()
{
$.ajax({
type: "GET",
url: base_url + "/api/topInformation.json",
dataType: "json",
success: function(response)
{
var json_obj = response.mainDescription;
var imagesSlider="";
var imagesSliderDescription ="";
for (var i = 0; i< json_obj.length; i++)
{
}
}
,
error: function(jqXHR, textStatus, errorThrown) {
alert(jqXHR.status);
}
})
}
我认为 json 文件不相关,但下面是我的 json 文件:
{"mainDescription":[
{
"display": "my display",
"description" : "my description"
}
]}
我已经取出了 for 循环中的信息进行测试以及我的附加信息,因为不相关。由于某种原因,它失败并出错而不是成功。所有其他呼叫均以相同方式设置并正常工作。