URL заблокирован ошибка в Outlook в почте, отправленной с помощью sharepoint - PullRequest
1 голос
/ 31 января 2012

У меня есть данные xml, которые я преобразую, используя таблицу стилей xsl для формирования содержимого тела письма, и я использую метод SPUtility.SendEmail для отправки почты. У меня есть две ссылки: одна для просмотра формы Infopath и другая для утверждения / отклонения формы задачи. Ссылка на форму infopath работает правильно в моей почте, но не на другой. Я получаю ошибку «URL заблокирован для безопасности» в веб-клиенте Outlook.

<a title="Approve/Reject" style="color:#b94e0a;text-decoration:underline;">
    <xsl:attribute name="href">
        <xsl:text>http:/stage/_layouts/WrkTaskIP.aspx?List=91be5c14%2D6eea%2D4223%2D802e%2D7fa28b5d14ba&amp;ID=</xsl:text>
        <xsl:value-of
            select="substring-before(/SRWorkflowDetails/SRLevel[level=$level and contains(Approver,$Id)]/URL,';')" 
            disable-output-escaping="yes"/>
        <xsl:text>&amp;Source=http://stage/_layouts/WrkStat.aspx?List=089f13be%2D3147%2D4818%2Da30e%2Da332cb63195d&amp;WorkflowInstanceID=</xsl:text>
        <xsl:value-of
            select="substring-after(/SRWorkflowDetails/SRLevel[level=$level and contains(Approver,$Id)]/URL,';')"
            disable-output-escaping="yes"/>
    </xsl:attribute>
    Approve/Reject
</a>

Выходная отформатированная ссылка:

<a
    title="Approve/Reject"
    style="color:#b94e0a;text-decoration:underline;"
    href="http:/stage/_layouts/WrkTaskIP.aspx?List=91be5c14%2D6eea%2D4223%2D802e%2D7fa28b5d14ba&amp;ID=35&amp;Source=http://stage/_layouts/WrkStat.aspx?List=089f13be%2D3147%2D4818%2Da30e%2Da332cb63195d&amp;WorkflowInstanceID=11e09c76-29ec-4c7f-ace3-ad7a8c9e7b44">
    Approve/Reject
</a>

Когда я копирую и вставляю URL в браузер, я получаю приглашение «неожиданная ошибка произошла», затем я заменяю &amp; на & в браузере, я правильно открываю свою форму.

Это какая-то проблема с синтаксическим анализом в outlook, но у меня работает другая ссылка с &amp; ??

1 Ответ

0 голосов
/ 31 января 2012

Попробуйте добавить отключение-выход-экранирование к элементам xsl: text:

<a title="Approve/Reject" style="color:#b94e0a;text-decoration:underline;">
    <xsl:attribute name="href">
    <xsl:text disable-output-escaping="yes">http:/stage/_layouts/WrkTaskIP.aspx?List=91be5c14%2D6eea%2D4223%2D802e%2D7fa28b5d14ba&amp;ID=</xsl:text>
    <xsl:value-of
        select="substring-before(/SRWorkflowDetails/SRLevel[level=$level and contains(Approver,$Id)]/URL,';')" 
        disable-output-escaping="yes"/>
    <xsl:text disable-output-escaping="yes">&amp;Source=http://stage/_layouts/WrkStat.aspx?List=089f13be%2D3147%2D4818%2Da30e%2Da332cb63195d&amp;WorkflowInstanceID=</xsl:text>
    <xsl:value-of
        select="substring-after(/SRWorkflowDetails/SRLevel[level=$level and contains(Approver,$Id)]/URL,';')"
        disable-output-escaping="yes"/>
    </xsl:attribute>
    Approve/Reject
</a>

Или попробуйте покончить с элементами xsl: text:

<a title="Approve/Reject" style="color:#b94e0a;text-decoration:underline;">
    <xsl:attribute name="href">
    http:/stage/_layouts/WrkTaskIP.aspx?List=91be5c14%2D6eea%2D4223%2D802e%2D7fa28b5d14ba&amp;ID=<xsl:value-of
        select="substring-before(/SRWorkflowDetails/SRLevel[level=$level and contains(Approver,$Id)]/URL,';')" 
        disable-output-escaping="yes"/>&amp;Source=http://stage/_layouts/WrkStat.aspx?List=089f13be%2D3147%2D4818%2Da30e%2Da332cb63195d&amp;WorkflowInstanceID=<xsl:value-of
        select="substring-after(/SRWorkflowDetails/SRLevel[level=$level and contains(Approver,$Id)]/URL,';')"
        disable-output-escaping="yes"/>
    </xsl:attribute>
    Approve/Reject
</a>

Если ни один из нихработать, попробуйте обходной путь, описанный в Как отключить экранирование выходных данных для атрибута?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...