.net - %2b 导致 IIS Hosted Angular 返回 404
问题描述
我有一个函数,它返回一个包含令牌的 url 和一封返回给用户电子邮件的电子邮件。
当用户单击该链接时,它将重定向到我的 Angular 应用程序。
但是,如果 url 由 HttpUtility.UrlEncode 编码,则符号 (+) 将变为 %2b。
这导致我的 EC2 IIS 托管角度出现问题。但它在本地机器上运行良好。
我的 API(.Net3.0):
string encode_email = HttpUtility.UrlEncode(model.Email);
var encode_token = HttpUtility.UrlEncode(token);
var confirmationLink = WebsiteUrl + "confirm-email/" + encode_token +
"/" + encode_email;
我的角度路线
{
path:"confirm-email/:token/:email",
component:ConfirmEmailComponent
},
经过多次测试,我 100% 确定是 %2b 导致 url 无法正常工作。
这是我的 webapp 的示例链接
[删除链接]
如果您删除 %2b 并使用其他东西,它会完美运行。
请帮忙。我不确定在这里做什么。
解决方案
找到了答案,
在您的 web.config 文件中,您必须将 DoubleEscaping 设置为 true。
<security>
<requestFiltering allowDoubleEscaping="True" />
</security>
推荐阅读
- python - numpy中范围为[-1,1]的转换Dirichlet数组
- javascript - 有没有办法从事件/任务的 sys_updated_by 字段中检索用户数据?
- node.js - 使用反应:TypeError:value.products.map 不是函数
- swift - 使用 Swift 的数组中的最大偶数
- java - 我的检查算法不会停止冒泡排序
- python - 将嵌套的 JSON 拆分为大小相等的文件 PySpark/Python
- scala - 在 Scala (Play Framework) 中将对象序列化为 JSON 原始类型
- java - Java Eclipse 问题
- r - 取消列出具有父列表名称的子列表的嵌套列表
- angular - 类型'可观察的
>' 不可分配给类型 'Observable '