SailsJS - CORS - 'Access-Control-Allow-Origin'标题包含无效值''
问题描述:
我生成了一个新的sails.js应用程序并创建了如下的测试API。SailsJS - CORS - 'Access-Control-Allow-Origin'标题包含无效值''
module.exports = {
test:function (req, res) {
return res.ok({success: true});
},
}
的sails
应用程序是在一个独立的本地机器在192.168.3.208:1337
主办了。
我的CORS
配置如下。
module.exports.cors = {
origin: '*',
credentials: true,
};
当我做从我的本地机器(192.168.3.210
)到API简单AJAX
电话,
$.ajax({
type: 'GET',
url: 'http://192.168.3.208:1337/api/test',
dataType: 'json',
success: function(data) {
console.log(data);
},
failure: function(data) {
console.log(data);
}
});
我收到以下错误
无法加载http://192.168.3.208:1337/api/test:本 'Access-Control-Allow-Origin'标题包含无效值''。 原因'http://localhost'因此不允许访问。
HTML页面在端口80
缺少什么我在这里与Apache托管?
答
这解决
module.exports.cors = {
origin: '*', // Required whitelist
credentials: true,
headers: ['Authorization', 'content-type', 'user-agent']
};
见https://sailsjs.com/documentation/concepts/security/cors#?warning对于为什么你不应该尝试结合'起源的解释这个问题:“* ''凭证:true'。我猜测在测试过程中,你可以尝试设置''origin:'http:// localhost /''并查看是否可行 - 并且在生产中,将“origin”值更改为允许来自证书的请求的真实来源。您通常希望避免允许任何来源的凭证请求。 – sideshowbarker
将'allRoutes:true,'添加到'cors'配置。 – MjZac