2017-10-18 89 views
0

我生成了一个新的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托管?

+1

见https://sailsjs.com/documentation/concepts/security/cors#?warning对于为什么你不应该尝试结合'起源的解释这个问题:“* ''凭证:true'。我猜测在测试过程中,你可以尝试设置''origin:'http:// localhost /''并查看是否可行 - 并且在生产中,将“origin”值更改为允许来自证书的请求的真实来源。您通常希望避免允许任何来源的凭证请求。 – sideshowbarker

+1

将'allRoutes:true,'添加到'cors'配置。 – MjZac

回答

1

这解决

module.exports.cors = { 
    origin: '*', // Required whitelist 
    credentials: true, 
    headers: ['Authorization', 'content-type', 'user-agent'] 
};