2017-10-18 90 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'] 
};