第十章 Net 5.0 快速开发框架 YC.Boilerplate --部署跨域问题解决方案

在线文档:http://doc.yc-l.com/#/README
在线演示地址:http://yc.yc-l.com/#/login
源码github:https://github.com/linbin524/yc.boilerplate
源码gitee:https://gitee.com/linxuanming/yc.boilerplate

视频教程:
元磁之力框架开源初心和框架设计介绍(上): https://www.bilibili.com/video/BV1VM4y1G7hC/
元磁之力框架开源初心和框架设计介绍(下): https://www.bilibili.com/video/BV15h411s7w6/
元磁之力框架数据库表和代码生成使用教程实战: https://www.bilibili.com/video/BV1oM4y137D5/

QQ群:1060819005

 

后续:关于框架demo和细节技巧,会在QQ群中发布,就不撰文说明。 

 

环境介绍:

前端部署:npm run build 命令生成dist 文件,在nginx 部署

后端部署:

1)采用IIS 作为服务载体部署。

2)直接用dotnet YC.ServiceWebApi.dll 运行

问题:部署完成可能遇到跨域问题【putdelete等方法中】

解决方案:

 

一、iis 支持put和delete

调试的时候是可以使用put请求的,后面部署到IIS上面的使用旧提示报错了。

原因是IIS默认是不支持put和delete的请求的,要想IIS支持,则需要进行如下两个步骤。

1、删除自己项目下的IIS安装的WebDav模块

 

2、修改你项目的web.config ,在<system.webServer>标签内加上以下代码。

 

<modules runAllManagedModulesForAllRequests="true" runManagedModulesForWebDavRequests="true"> <remove name="WebDAVModule"/> </modules> <handlers> <remove name="WebDAV" /> </handlers>

 

 

二、nginx 配置跨域支持put和delete

 

location ^~/api {

if ($request_method = 'OPTIONS') {#添加跨域支持

add_header Access-Control-Allow-Origin *;

add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,PATCH,OPTIONS;

return 200;

}

 

rewrite ^/api/(.*)$ /$1 break; #重置api

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://106.54.54.39:8001; #****后端接口地址

}

 

posted @ 2021-09-13 14:23  linbin524  阅读(165)  评论(0编辑  收藏  举报