【问题标题】:Unable to POST <Form> from Excel 2016 for Mac or Excel for iPad [duplicate]无法从 Excel 2016 for Mac 或 Excel for iPad 发布 <Form> [重复]
【发布时间】:2017-12-06 20:50:38
【问题描述】:

在测试具有POSTshttpbin Request & Response Service 的 HTML 表单的 Excel Web 加载项时,不会发送该表单。

我正在使用 Excel 2016 for Mac 版本是 15.39 (171010),在 High Sierra 版本 10.13.1 上运行。我在 iPad 版的 Excel 中看到了同样的问题。

在对表单使用POST 方法时,Excel 加载项是否与 Excel 2016 for Mac 和 iPad 不兼容?

有一个对站点的调用,页面在浏览器中打开。但是,没有POST。这是我们在httpbin.org 页面上看到的内容——注意GET 方法,没有看到任何参数及其值:

{
    "Host": "httpbin.org",
    "Upgrade-Insecure-Requests": "1",
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"
    "method": "GET",
    "origin": "<ip-address-here>",
    "url": "https://httpbin.org/anything"
}

使用这个:

<script type="text/javascript">
    $("#testForm").submit();
</script>

<form method="POST" id="testForm" action="https://httpbin.org/anything" accept-charset="UTF-8" target="_blank">
    <input type='hidden' name='mergeDataFormat' value='csv'>
    <input type="hidden" name="mergeData" id="mergeData" value='Name,Street,"City, State",ZIP Code'>
    <input type="submit" value="Send" id="submitForm" />
</form>

请参阅此帖子了解更多详细信息: Why doesn’t the form not POST in Excel 2016 for Mac?

AppDomain 设置如下:

<AppDomains>
    <AppDomain>https://httpbin.org/</AppDomain>
</AppDomains>

尝试使用onsubmit 处理程序,如下所示,但我没有看到任何变化。

<form method="POST" id="testForm" onsubmit="datasubmit()" action="https://httpbin.org/anything" accept-charset="UTF-8" target="_blank"></form>

<script type="text/javascript">
    function datasubmit() {
        console.log("Your details have submitted..........");
    }
</script>

在 Excel 2016 for Mac 之外的浏览器中进行测试时,相同的代码可以正常工作。在 Excel Online 中也可以正常工作。仅在 Excel 2016 for Mac 中失败。

【问题讨论】:

  • 应该支持。提交表单时是否看到网络跳闸?你怎么叫post?表单操作还是调用提交处理程序(函数)?您可能想尝试后者并通过您的提交处理程序进行网络调用。
  • 用一些细节更新了问题。谢谢!
  • 很酷的建议尝试提交处理程序(函数)。我们试过了 - 请在问题的下部查看结果。得到同样的问题。任何其他想法表示赞赏。并感谢您的帮助。
  • 我们正在调查该问题并尽快回复。
  • Tristan 告知我们有一种解决方法。你能在这里分享吗?谢谢。

标签: javascript excel office-js


【解决方案1】:

我认为这与加载项清单的 AppDomain 段中相对路径的使用有关。不允许使用诸如https://httpbin.org/anything 之类的相对路径,而您只需使用域名https://httpbin.org/。您是否需要在应用程序中打开新窗口,或者您可以将表单发布到不同的框架?换句话说,您能解释一下表单和发布操作的期望行为吗?

【讨论】:

  • 对 AppDomain 进行了更改,但遗憾的是并没有改变结果;更新了这篇文章。是的,我们需要打开一个新窗口作为应用程序的一部分,因为使用数据的后续步骤是在不同的站点上完成的。 POST 方法用于提交表单中的数据。该站点 httpbin.org 仅用于显示请求,并且似乎 POST 不仅仅发生在 Excel for Mac 上。换句话说,在多个平台和主机上测试后,我们关心的是:为什么 POST 方法只在 Excel for Mac 上失败?
  • 根据我从 eng 获得的最新信息。团队,Mac 上的 POST 问题将在本月的版本中得到解决。但是,新窗口将是 WebKit 控制浏览器,与完整的 IE 浏览器相比,某些行为可能会有所不同(如果您使用的只是 HTML 操作,则不应该影响)。如果您可以通过电子邮件联系人分享您的加载项详细信息(甚至是供我们尝试的示例),那将是非常棒的,您必须确保该修复程序能够解决您的问题。
  • 很高兴听到这个消息!包含信息的项目已发送到您的电子邮件。请确认您已收到电子邮件,如果您还需要任何其他信息,请告诉我们。谢谢。
  • 对不起,我没有收到。请发送电子邮件至 suramam (at) microsoft email。
  • 再次向该地址发送电子邮件。希望它以一件的形式到达。谢谢。
猜你喜欢
  • 2018-03-28
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
相关资源
最近更新 更多