После долгих исследований и чтения на форуме разработчиков webkits
я наконец-то могу рассказать о том, что происходит и как это предотвратить, в chrome / webkit / safari
.
Все дело в типе соединения.Чтобы chrome
работал «правильно» (responseText НЕ равен NULL) в пределах ready state 3
, нам нужен тип контента, который не подвергается анализу.Например, Content-type: text / xml работает нормально.
Другая важная вещь на webkit
заключается в том, что он не отображает отправленные данные до тех пор, пока не будет передано достаточно байтов.«Официальный», что treshhold
составляет около 256 байтов.Таким образом, вы должны по крайней мере отправить это как заполнение.
В любом случае, на моем тестировании я решил, что вам нужно отправить намного больше, прежде чем Chrome(5)
впервые запустит событие ajax state3.Около 1кб.