在docker容器内运行的Azure函数中设置CORS
我创建了一个azure函数,它公开了另一个项目中使用的API。我想让在前端工作的团队拥有我们API的Docker映像,以帮助他们进行开发。我已经使用运行在docker容器内运行的Azure函数中设置CORS,docker,cors,azure-functions,Docker,Cors,Azure Functions,我创建了一个azure函数,它公开了另一个项目中使用的API。我想让在前端工作的团队拥有我们API的Docker映像,以帮助他们进行开发。我已经使用运行func init LocalFunctionsProject--worker runtime dotnet--docker时生成的Dockerfile打包了azure函数,具体如下 这将产生以下Dockerfile内容: FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS installer-env C
func init LocalFunctionsProject--worker runtime dotnet--docker
时生成的Dockerfile打包了azure函数,具体如下
这将产生以下Dockerfile内容:
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS installer-env
COPY . /src/dotnet-function-app
RUN cd /src/dotnet-function-app && \
mkdir -p /home/site/wwwroot && \
dotnet publish *.csproj --output /home/site/wwwroot
FROM mcr.microsoft.com/azure-functions/dotnet:2.0
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true
COPY --from=installer-env ["/home/site/wwwroot", "/home/site/wwwroot"]
然后,我在前端项目上创建了一个docker compose.yml
文件:
version: "3.7"
services:
frontend:
image: frontend:latest
build: .
ports:
- "3000:3000"
env_file:
- frontend.docker.env
backend:
image: backend:latest
env_file:
- backend.docker.env
ports:
- "8080:80"
这成功地启动了两个容器,一个是前端,另一个是后端。在我的frontend.docker.env
中,我已将变量设置为指向后端
,以便前端调用直接指向http://backend/api/myendpoint
然而这就是一切失败的地方,我遇到了一个CORS问题:
我所尝试的:
访问控制允许来源
标题设置为*
,我可以验证该标题是否在邮递员中通过。然而,前端仍然面临CORS问题azure函数主机
文件中的web.config
:运行sed-i的///g'azure函数主机/web.config
之后,我看到以下标题来自Postman中的响应:
访问控制允许标头=X-request-With,内容类型
访问控制允许方法=获取、发布、选项、放置、修补、删除
访问控制允许原点=*
然而,我仍然面临着同样的问题。邮递员工作,前端不。。。
你知道问题可能是什么,或者如何正确设置CORS吗?这里正在讨论类似的问题:。遗憾的是,没有一个答案对我有效:(@LuisBecerril你解决了吗?遗憾的是,我还没有解决它@XardasLordI通过启用nginx容器并通过反向代理代理网络调用来解决它