Javascript Sendgrid动态模板从锚标记中剥离HREF

Javascript Sendgrid动态模板从锚标记中剥离HREF,javascript,html,sendgrid,sendgrid-api-v3,sendgrid-templates,Javascript,Html,Sendgrid,Sendgrid Api V3,Sendgrid Templates,我有一个动态电子邮件模板,用于向用户发送唯一的令牌链接以重置其密码。我将链接分配给请求对象中个性化设置的动态模板数据部分中名为“链接”的字段。当我收到电子邮件时,我的锚标记没有href属性 这是我的请求对象: { method: "POST", url: "/v3/mail/send", headers: { "content-type": "application/json" }, body:

我有一个动态电子邮件模板,用于向用户发送唯一的令牌链接以重置其密码。我将链接分配给请求对象中个性化设置的动态模板数据部分中名为“链接”的字段。当我收到电子邮件时,我的锚标记没有href属性

这是我的请求对象:

{
        method: "POST",
        url: "/v3/mail/send",
        headers: {
          "content-type": "application/json"
        },
        body: {
          personalizations: [
            {
              to: [{ email: email, name: name }],
              dynamic_template_data: {
                link: link
              }
            }
          ],
          // some other content
          // ...
          template_id: Constants.EMAIL.RESET_PASSWORD
        },
        json: true
      }
以及我的sendgrid动态模板中的html:

<div>Use the following link to reset your password: <a href="{{link}}">{{link}}</a></div>
使用以下链接重置密码:
当我收到电子邮件时,链接的文本正确地填充了我的动态内容,但元素没有href属性,因此它呈现为纯文本,不可单击:


特别奇怪的是,当我在SendGrid的设计编辑器上预览我的动态模板时,href字段正确地填充了我传入的测试数据。

在SendGrid支持下来回运行了一段时间后,我终于找到了问题所在

因为我一直在本地环境中开发此功能,所以我在请求正文中包含的链接指向我的本地主机。我的链接变量定义如下:

  link = "localhost:8080/#/resetPassword/" + token;
作为一项测试,我将链接更改为以下内容,它成功了:

link = "https://google.com"
这让我怀疑是缺乏http协议导致了这个问题。将其更改为以下选项可修复此问题:

  link = "http://localhost:8080/#/resetPassword/" + token;

我假设这是anchor标记元素本身的一个怪癖,尽管我不太了解其机制,因此如果有人能为我详细介绍一下,我将不胜感激。

您可以在编辑模块html代码时使用字符串插值

<a href=`{{shipperLoadUrl}}`>portal</a>