#372 ✓invalid
Ivan Sokolov

Xhr can't parse json when Xhr.IFramed send form

Reported by Ivan Sokolov | October 7th, 2010 @ 04:10 PM

Xhr.IFramed object gets json from .documentElement.innerHTML.
After getting json Xhr.text property consists of json string and tags: '{json'
That is why Xhr can't parse json.

Comments and changes to this ticket

  • MadRabbit

    MadRabbit October 7th, 2010 @ 04:33 PM

    • State changed from “new” to “invalid”

    Привет Иван,

    К сожалению этот номер не пройдет, единственный формат с которым можно безопасно работать через трюк с айфреймом это голый HTML. Старые версии IE просто на просто не понимают ничего другого. Поэтому если вам нужно вернуть данные через айфрейм запрос то нужно посылать назад HTML страницу которая содержит яваскрипт с вашими данными. Например вот так

    <html>
      <head>
        <script type="text/javascript">
          with (window.parent) {
            my_function({
              data: 'boo hoo!'
            })
          }
        </script>
      </head>
    </html>
    

    Если вы на рельсе, то посмотрите right-rails плагин, там это все обернуто в цивилизованный вид

  • Ivan Sokolov

    Ivan Sokolov October 7th, 2010 @ 05:03 PM

    А почему нельзя тупо выдернуть json из documentElement.innerHTMl и его исполнить??
    Делается это простыми регулярками.
    Ну еще проблема будет в том, что если во айфрейме загружается application/json, то открывается окно на сохранение файла, которое ломает все. Но это тоже не проблема. Можно отдавать text/plain. А json парсить если установлено свойство evalJSON.

  • MadRabbit

    MadRabbit October 7th, 2010 @ 05:16 PM

    text/plain IE6 тоже насколько я помню предлагает сохранить на диск. Насчет возможности выдернуть JSON регулярными выражениями, вопрос хороший, но я не думаю что оно будет стабильно работать, т.к. если вы просто отдадите JSON с пометкой text/html то IE будет автоматически пытаться исправить содержимое приводя его в более менее стандартный вид. Как следствие если ваш JSON будет содержать строки с HTML кодом, IE во первых все испортит, во вторых вполне возможно вылетит сам, в природе полно кейсов где IE падает на нестандартной мешанине тэгов.

  • Ivan Sokolov

    Ivan Sokolov October 7th, 2010 @ 05:26 PM

    Ок. Вы меня убедили :)
    Долбаный ие..

  • MadRabbit

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

RightJS Core Tickets

Shared Ticket Bins

People watching this ticket

Pages