我正在创建另一个供应商正在调用的子对话框。我无法从该供应商那里读取传递给我的子菜单的值。当我从另一个vxml浏览器中调用subialog时,我可以读取传入的参数,所以我倾向于认为其他供应商正在错误地传递它们。但是,我无法在w3c规范中找到有关数据如何真正传递的任何细节。当IIS从我正在使用的语音浏览器发布我的页面时,我没有看到参数被指定为查询字符串的一部分。但是,当这个其他供应商的浏览器请求我的子对话框时,我看到查询字符串中的参数,并且值没有显示在相应的参数中。这让我相信他们错误地传递了变量。有什么地方我可以获得有关这个过程如何工作的详细信息吗?如何确认这些值实际上没有通过?谢谢!
答案 0 :(得分:1)
subdialog元素可用于转换到同一文档或外部文档中的表单。由于您表明您正在与第三方合作,我将假设子对话框是您文档中的外部表单。
subialog通过HTTP请求传递参数。如果subdialog的method属性是GET或未设置,则它们将是URL上的参数。如果是发布,它们将嵌入请求中。如果您正在创建标准servlet / jsp,那么您应该能够像在任何Web应用程序中那样获取这些参数。
正如您可能已经注意到的那样,VoiceXML规范在很多细节上都有点弱。可能导致您出现问题的一个特殊问题是如何传递复杂对象(ECMAScript对象)。有些浏览器不会传递它们,有些浏览器转换为文本参数,如x.y.z = 42,有些转换为JSON字符串。我建议保留传递原始变量。
关于传递对象的主题,在文档中转换而不是转换到另一个文档时,您可能会在浏览器中发现不同的行为。
一些快速检查: