Передача поддиалоговых параметров в VXML - PullRequest
1 голос
/ 16 июня 2009

Я создаю вспомогательный диалог, который вызывает другой поставщик. У меня проблемы с чтением значений, переданных в мой поддиалог от этого поставщика. Я могу прочитать параметры, переданные при вызове субдиалога из другого браузера vxml, поэтому я склонен думать, что другой поставщик передает их неправильно. Тем не менее, я не смог найти какие-либо подробности в спецификации w3c о том, как эти данные действительно передаются. Когда IIS публикует мою страницу из голосового браузера, который я использую, я не вижу параметров, указанных как часть строки запроса. Однако, когда этот браузер для этого другого поставщика запрашивает мой поддиалог, я вижу параметры в строке запроса, а значения не отображаются в соответствующих. Это приводит меня к мысли, что они передают переменные неправильно. Могу ли я где-нибудь узнать подробности о том, как этот процесс должен работать? Как я могу подтвердить, что эти значения на самом деле не передаются? Спасибо!

1 Ответ

1 голос
/ 02 июля 2009

Элемент subdialog может использоваться для перехода к формам в том же документе или внешнем документе. Поскольку вы указываете, что работаете с третьей стороной, я предполагаю, что поддиалог относится к внешней форме в вашем документе.

Поддиалог передает аргументы через HTTP-запрос. Если атрибут метода вспомогательного диалога имеет значение GET или не задан, они будут аргументами в URL. Если это пост, они будут включены в запрос. Если вы создаете стандартный сервлет / jsp, вы должны быть в состоянии подобрать эти аргументы, как и в любом веб-приложении.

Как вы, наверное, заметили, спецификация VoiceXML немного слабовата во многих деталях. Одна конкретная проблема, которая может вызвать у вас проблемы - это то, как передаются сложные объекты (объекты ECMAScript). Некоторые браузеры не передают их, некоторые преобразуют в текстовые аргументы, такие как x.y.z = 42, а некоторые преобразуют в строку JSON. Я рекомендую придерживаться примитивных переменных.

В отношении передачи объектов в браузере при переходе внутри документа может быть другое поведение по сравнению с переходом в другой документ.

Некоторые быстрые проверки:

  • Проверьте, есть ли у поставщика пример приложения, демонстрирующего передачу аргумента
  • Убедитесь, что вы используете браузер, который поставщик использовал для проверки своего приложения.
...