Express 在启用CORS模块的情况下,请求的资源上不存在“Access Control Allow Origin”标头
我正试图让CORS在我的AWS Lambda服务器上使用无服务器。现在我有两个子域名api.site.co和app.site.co 在Express上的app.js文件中,我安装了CORS并启用了它,如下所示:Express 在启用CORS模块的情况下,请求的资源上不存在“Access Control Allow Origin”标头,express,cors,Express,Cors,我正试图让CORS在我的AWS Lambda服务器上使用无服务器。现在我有两个子域名api.site.co和app.site.co 在Express上的app.js文件中,我安装了CORS并启用了它,如下所示: app.use( cors({ origin: 'https://app.site.co', optionsSuccessStatus: 200, }), ); app.options('*', cors()); 然后使用React中的Axios模块,我进行以下
app.use(
cors({
origin: 'https://app.site.co',
optionsSuccessStatus: 200,
}),
);
app.options('*', cors());
然后使用React中的Axios模块,我进行以下调用:
axios
.post('/users/register', user)
.then(res => history.push('/login'))
.catch((err) => {
dispatch({
type: GET_ERRORS,
error: err.response.data,
});
});
另外,在客户端应用程序的my app.js文件中:
axios.defaults.baseURL = 'https://api.site.co';
提交任何请求时,我收到以下错误:
Access to XMLHttpRequest at 'https://api.site.co/users/register' from origin 'https://app.site.co' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
到目前为止,我还尝试将CORS配置更改为:
app.use(cors());
app.options('*', cors());
但我还是犯了同样的错误
关于如何解决这个问题,有什么建议吗?看起来有一个打字错误: =>
你是在请求https://api.site.co 但您的配置指定https://app.site.co这是AWS Lambda无服务器设置的问题。我需要补充一点
functions:
app:
handler: app.handler
events:
- http:
path: /
method: any
cors:
origin: 'https://app.site.co'
- http:
path: '{proxy+}'
method: any
cors:
origin: 'https://app.site.co'
因此,当代理到Express中间件时,它将允许CORS请求。Hmm。请求将从客户端应用程序发送到REST API。你能解释一下你指的是什么配置吗?CORS配置?