Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js VueJS前端和SailsJS后端之间的Axios CORS问题_Node.js_Vue.js_Cors_Sails.js - Fatal编程技术网

Node.js VueJS前端和SailsJS后端之间的Axios CORS问题

Node.js VueJS前端和SailsJS后端之间的Axios CORS问题,node.js,vue.js,cors,sails.js,Node.js,Vue.js,Cors,Sails.js,我已经解决了这个问题,但我仍然无法从VueJs前端到SailsJS后端建立Axios连接。Vue在localhost:8080上运行,而Sails在localhost:1337上运行。以下是错误消息和一些相关设置- Vue-Vue.config.js Vue-src/views/Example.Vue Sails-config/security.js Sails-api/controllers/ExampleController.js 我已经根据其他SO建议对这些设置进行了大量修改,但似乎没有

我已经解决了这个问题,但我仍然无法从VueJs前端到SailsJS后端建立Axios连接。Vue在
localhost:8080
上运行,而Sails在
localhost:1337
上运行。以下是错误消息和一些相关设置-

Vue-Vue.config.js

Vue-src/views/Example.Vue

Sails-config/security.js

Sails-api/controllers/ExampleController.js

我已经根据其他SO建议对这些设置进行了大量修改,但似乎没有任何东西能够绕过这个CORS错误。有什么想法吗

编辑

我找到了一个可行的解决方案,尽管并不理想。如果我在操作级别添加此项,它将发送我的前端将接受的响应

Sails-api/controllers/ExampleController.js


在sails config/routes.js中,尝试:

'POST /api/v1/your_route': { action: 'your_path_to_action', cors: false, csrf: false },

为什么您的axios是默认的,
axios.defaults.baseURL='0http://localhost:8080“
设置为:8080?

我也尝试在路由级别添加
cors
csrf
,但不幸的是,没有成功。看起来问题是来自Sails的响应在标题中没有“Access Control Allow Origin”,而我发现的唯一修复方法是在操作级别添加它。我用修正更新了我的问题。不幸的是,我认为我必须为每一个不理想的行动这样做。
axios.defaults.baseURL只是我临时尝试的复制和粘贴代码,现在我把它取出来了。对我来说,它的工作原理是这样的
cors:{allRoutes:true,allowOrigins:['https://example.com:1337',       'https://another_domain.com',       'http://an_IP’     ],AllowRequestsHeaders:'内容类型,授权,来源,X-request-With,,Accept',allowRequestMethods:'获取,放置,发布,修补,选项,删除,HEAD',allowCredentials:true,},
注意:很抱歉,它没有保持格式设置…不幸的是,它对我仍然不起作用。它必须是一些我刚刚忘记的配置设置,它与那些设置冲突。这是我唯一能想到的。
axios.defaults.baseURL = 'http://localhost:8080'
  axios.defaults.crossDomain = true
  axios.defaults.headers['Access-Control-Allow-Origin'] = '*'


  const response = await axios.get('http://localhost:1337/hello')
module.exports.security = {

  cors: {
    allRoutes: true,
    allowOrigins: '*',
    allowCredentials: false,
    methods: 'GET, POST, PUT, DELETE, OPTIONS, HEAD',
    headers: 'content-type',
    allowAnyOriginWithCredentialsUnsafe: true,
  }

};
module.exports = {
  hello: function(req, res) {
    return res.status(200).send('hello');
  }
}
module.exports = {
  hello: function(req, res) {
    res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080');

    return res.status(200).send('hello');
  }
}
'POST /api/v1/your_route': { action: 'your_path_to_action', cors: false, csrf: false },