1

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

4

1 回答 1

1

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

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

您可能已经注意到,VoiceXML 规范在很多细节上都有些薄弱。可能会导致您遇到问题的一个特定问题是复杂对象(ECMAScript 对象)的传递方式。有些浏览器不会传递它们,有些会转换为 xyz=42 等文本参数,有些会转换为 JSON 字符串。我建议保持传递原始变量。

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

一些快速检查:

  • 查看供应商是否有演示参数传递的示例应用程序
  • 确认您使用的是供应商用来验证其应用程序的浏览器。
于 2009-07-02T12:53:32.243 回答