|
|
|
Проблемы со строковыми результатами от метода web-сервиса
|
|||
|---|---|---|---|
|
#18+
Добрый вечер. Возникла проблема... Пишу web-клиент, который взаимодействует с web-сервисом, написанном на Cache. Полюзуюсь soapclient.js для взаимодействия. Взаимодействие идет через AJAX. Обмен данными идет нормально, команды выполняются, результат возвращается, но... если результат выполнения метода web-сервиса возвращает строку длинной больше 1000 символов, то этот результат в responseXML браузера (объекта XmlHttpRequest) представлен несколькими текстовыми узлами, о чем soapclient.js не подозревает и возвращает мне только значение последнего текстового узела. Т.е. такой результат возвращает мне метод GetData Web-сервиса при запуске из браузера: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. Но в объекте XmlHttpRequest в responseXML узел GetDataResult имеет несколько текстовых узлов и результатом запроса является объект javascript Object с единственным свойством #text, в котором содержится текст последнего текстового узла GetDataResult... Хотя метод GetData веб-сервиса возвращает результат типа String. Если строка короче 1000 символов, то результатом является строка javascript... С чем может быть связано разделение строкового результата от web-сервиса на несколько текстовых узлов на стороне браузера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2012, 00:58 |
|
||
|
Проблемы со строковыми результатами от метода web-сервиса
|
|||
|---|---|---|---|
|
#18+
Со стороны Cache таких ограничений быть не должно. По крайней мере никто из клиентов не жаловался. Скорее дело в обработке ответа уже на вашей стороне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2012, 08:59 |
|
||
|
Проблемы со строковыми результатами от метода web-сервиса
|
|||
|---|---|---|---|
|
#18+
посмотрите в текстовом представлении результат (responseTEXT), что там? и опубликуйте здесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2012, 12:49 |
|
||
|
Проблемы со строковыми результатами от метода web-сервиса
|
|||
|---|---|---|---|
|
#18+
Вот текст из узла responseText (без правок): Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. А тут я показал, как это текстовое сообщение разбито на 2 текстовых узла: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. Обмен данными с web-сервисом я делаю в формате base64. В данном сообщении передавались просто числа, разделенные символом "/". Для данного ответа от сервера в responseXML в узле результата <GetDataResult> было сформировано 2 текстовых дочерних узла. В тексте сообщения с руками сделал разрыв, чтобы показать содержимое 1-го и 2-го текстовых узлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2012, 19:47 |
|
||
|
Проблемы со строковыми результатами от метода web-сервиса
|
|||
|---|---|---|---|
|
#18+
во всех браузерах такая проблема? заголовки при передаче данных с сервера верны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2012, 22:28 |
|
||
|
Проблемы со строковыми результатами от метода web-сервиса
|
|||
|---|---|---|---|
|
#18+
DpProg, Прочитал о soapclient.js: On the client side we use the WSDL (Web Service Description Language) to automatically generate a JavaScript proxy class so as to allow using the Web Service return types... . Полный изврат (ИМХО). Если нужно юзать сервисы именно из клиента (javascript), то пользуют JSON. Если КЕШЕ не умеет отвечать json-форматом, то при всей его распальцованности это, минимум, странно. Отсюда: а) Заменить/заставить сервис отдавать json. При невозможности: б) работать с ним на сервере, как и положено "по уставу". SOAP -протокол межсерверного общения. Если до зарезу нужен AJAX на клиенте - в) реализовать прокси (б), а уж со своего сервера отдавать json. Иначе, вы хотели проблем - вы их получили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2012, 00:33 |
|
||
|
Проблемы со строковыми результатами от метода web-сервиса
|
|||
|---|---|---|---|
|
#18+
iConst, Если я правильно понял тебя, то я должен по AJAX вести обмен с серваком (например Apache), с программами, написанными на PHP и вести обмен по json. А в свою очередь программа на php по soap будет делать запрос к Cache для получения нужного результата перекодировать его в json и отдавать моему клиенту? Примерно это имеете в виду? Можно и так... но это сложно, как по мне. Проблему пока временно решил для себя исправлением исходного кода soapclient.js где учел сложившуюся ситуацию при обмене строковыми данными. Пускай пока работает так (оно заработало даже для 20 000 символом!!! :) ), пока не разберусь в чем же причина. Спасибо всем, кто откликнулся! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2012, 22:27 |
|
||
|
Проблемы со строковыми результатами от метода web-сервиса
|
|||
|---|---|---|---|
|
#18+
sxq, Проверял в Opera и FireFox. В этих -х ситуация одинаковая. В IE проверить не могу, т.к. он не переваривает библиотеку soapclient.js и вылетает... Буду еще смотреть в чем причина и по возможности исправлю этот глюк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2012, 22:29 |
|
||
|
Проблемы со строковыми результатами от метода web-сервиса
|
|||
|---|---|---|---|
|
#18+
прямо с крашрепортом вылетает? что за адская библиотека... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2012, 22:52 |
|
||
|
Проблемы со строковыми результатами от метода web-сервиса
|
|||
|---|---|---|---|
|
#18+
скоро будут писать такие скрипты, что винда начнет бсодить, а всякие линуксы просто рваться в клочья ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2012, 22:53 |
|
||
|
Проблемы со строковыми результатами от метода web-сервиса
|
|||
|---|---|---|---|
|
#18+
Antonariy, Я имел в виду, что библиотека вылетает по исключению и исполнение js-скрипта прекращается. IE не может объект WSDL (внутренний объект этой библиотеки) переварить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2012, 23:14 |
|
||
|
Проблемы со строковыми результатами от метода web-сервиса
|
|||
|---|---|---|---|
|
#18+
DpProg, а так-ли нужен Вам WSDL? Может проще ручками soap-конверт сформировать и ответ распарсить? У меня так Windows gadget с веб-сервисом общается: формирую текст soap-конверта, при помощи jQuery ajax дёргаю сервис, при помощи jQuery разбираю ответ (удобно). Windows гаджеты работают из-под IE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2012, 03:40 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38032653&tid=1449131]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 476ms |

| 0 / 0 |
