我正在创建另一个供应商正在调用的子对话框。我无法读取从该供应商传递到我的子对话框中的值。当我自己从另一个 vxml 浏览器调用子对话框时,我可以读取传入的参数,因此我倾向于认为其他供应商错误地传递了它们。但是,我无法在 w3c 规范中找到有关数据如何真正传递的任何详细信息。当 IIS 从我使用的语音浏览器发布我的页面时,我没有看到参数被指定为查询字符串的一部分。但是,当其他供应商的浏览器请求我的子对话框时,我会看到查询字符串中的参数,并且这些值不会显示在相应的中。这让我相信他们错误地传递了变量。我可以在哪里获得有关此过程如何运作的详细信息吗?我如何确认这些值实际上没有被传递?谢谢!

有帮助吗?

解决方案

子对话框元素可用于转换到同一文档或外部文档内的表单。由于您表明您正在与第三方合作,因此我将假设子对话框是文档中的外部表单。

子对话框通过 HTTP 请求传递参数。如果子对话框的方法属性为 GET 或未设置,则它们将成为 URL 上的参数。如果是邮寄,它们将嵌入到请求中。如果您正在创建标准 servlet/jsp,您应该能够像从任何 Web 应用程序中一样获取这些参数。

您可能已经注意到,VoiceXML 规范在很多细节上都有点薄弱。可能给您带来问题的一个特殊问题是复杂对象(ECMAScript 对象)的传递方式。有些浏览器不会传递它们,有些浏览器会转换为文本参数,例如 x.y.z=42,有些浏览器会转换为 JSON 字符串。我建议继续传递原始变量。

关于对象传递的主题,您可能会发现在文档内转换与转换到另一个文档时浏览器中的行为不同。

一些快速检查:

  • 查看供应商是否有演示参数传递的示例应用程序
  • 验证您使用的浏览器是否是供应商用来验证其应用程序的。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top