我正在使用与AngularJS的MEAN堆栈。我试图从控制器的URL HTTP GET方法获取JSON值,但我无法得到它。我在浏览器控制台中面临这样的错误
请求标题字段在预检响应中,Access-Control-Allow-Header不允许使用If-Modified-Since。
$http({
method: "GET", url: /json url/
}).then(function (response) {
$scope.Content = response;
});
答案 0 :(得分:0)
当我学习MEAN时,我得到了同样的错误。我把它固定如下。希望它会对你有所帮助。
在您的应用中,服务器端(Node.Js)Index.js, 导入CORS模块,(从npm获取)
const cors = require("cors");
并简单地使用它。
// Enable Cross Origin Resource Sharing
app.use(cors());
并尝试设置其中一些标题取决于您的要求
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
response.setHeader("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
无需客户端的额外标头。只需$ http.get()就会给你回复。
有关详情,请参阅此标准文章https://fetch.spec.whatwg.org/#http-cors-protocol
答案 1 :(得分:0)
希望这个有帮助......!
app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With, content-type, Authorization');
});