【发布时间】:2018-03-30 20:46:17
【问题描述】:
我生成了一个新的sails.js 应用程序并创建了一个测试API,如下所示。
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”标头包含无效值“”。 因此,不允许访问 Origin 'http://localhost'。
html 页面在 Apache 的 80 端口托管。
我在这里错过了什么?
【问题讨论】:
-
请参阅sailsjs.com/documentation/concepts/security/cors#?warning,了解为什么不应该尝试将
origin: '*'与credentials: true结合使用。我想在测试期间你可以尝试设置 ``origin: 'localhost' ' 并查看它是否有效 - 在生产中,将origin值更改为您希望允许带有凭据的请求的任何真实来源。您通常希望避免允许来自任意来源的凭据请求。 -
将
allRoutes: true,添加到cors配置。
标签: ajax apache nginx cors sails.js