gpt4 book ai didi

javascript - 命令行参数无效 请验证您正在使用的交换机

转载 作者:行者123 更新时间:2023-11-28 00:10:06 25 4
gpt4 key购买 nike

当用户使用 javascript mailto 单击表单的提交按钮时,我尝试打开 Outlook:

当我从 Chrome 或 Firefox 提交表单时,它可以打开,但在 IE 中我收到以下错误:

命令行参数无效,请验证您正在使用的交换机

最佳答案

Microsoft Knowledge Base article很有帮助,但这只是一种解决方法:

  • 即如果我将默认程序更改为“Mail Express”(Windows 10),则在 IE 中单击 mailto 不会导致问题;电子邮件在“Mail Express”中打开,可以立即发送
  • 但是,如果我将默认程序更改回“Outlook 2016”(Windows 10),则在 IE 中单击 mailto 确实会导致问题:“命令行参数无效,请验证您所使用的开关”使用“

问题:

我的mailto值来自Angular,并且我的mailto有特殊字符。我只能使用 Angular's ng-href (JSFiddle) 重新创建此问题我无法使用 plain HTML (JSFiddle) 重现该问题)。

解决方案:

Solution JSFiddle here ;同样,我的问题特定于 Angular/ng-href,因此我的解决方案使用 Angular/ng-href

在我的例子中,我的 mailto href 属性值包含双引号(即 '"')。双引号被转义(带有反斜杠),但它们 < strong>未编码我需要对我的 mailto 值进行 URLEncode。这很直观,因为 href 属性通常指向 URL,并且 URLs require percent-encoding.

<a href="mailto:person@place.com?subject=Subject includes \"double-quotes\"">Mail link</a>

当我encodeURIComponent时,仅subject值:encodeURIComponent("Subject contains\"double-quotes\"") 并更新该部分。结果就在这里;注意新主题中的 %20 和 %22:

<a href="mailto:person@place.com?subject=Subject%20includes%20%22double-quotes%22">Mail link</a>

注意:

我有双引号(即 '"' 或 %22),但不同字符可能会导致问题:I怀疑 other URL-unsafe characters 可能会导致此问题。

看起来空格(即 ' ' 或 %20)没有引起问题,即使在编码之前也是如此。 我开始使用 encodeURIComponent 后,我可能修复了任何/所有其他可能导致问题的奇特字符,即 '&' 或其他...)

我不确定 parameters have different requirements 是否;即 subject 参数的处理方式与 body 参数或隐含的 to 参数不同。因此,我对 subjectbody 都使用了 encodeURIComponent

小心不要过度编码。仅对单独的 subjectbody 参数进行编码:

  • 不要对冒号进行编码(即mailto后面的:);浏览器可能无法识别这是一个 mailto 链接(参见解决方案)
  • 不要对问号(即 ?)或等号(即 =)进行编码;浏览器/Outlook可能无法解析参数(参见解决方案)

所以当我编码时:

encodeURIComponent("mailto:person@place.com?subject=Subject includes \"double-quotes\"")

注意结果;错误地编码了冒号(即 %3A)和等号(%3D)

 "mailto%3Aperson%40place.com%3Fsubject%3DSubject%20includes%20%22double-quotes%22"

小心不要双重编码,即对已经编码的字符串进行编码!

我将从问题中删除Java标签;我同意评论I don't think Java is relevant.

关于javascript - 命令行参数无效 请验证您正在使用的交换机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30981202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com