Не гипотетическая, но абстрагированная ситуация:
У меня есть домен www.foo.com, из которого я делаю AJAX POST на beta.foo.com. Изучая объект XHR, я вижу ответный заголовок в 200 OK, но нет текста ответа – я даже получаю ответ длиной 12B, который является точным ответом (12-символьная строка), который я ожидаю, – но текст ответа пустой.
Если это проблема между доменами, почему я получаю 200 OK, а еще лучше – почему я вижу, как функции PHP запускаются на стороне beta.foo.com, но не получая ответа?
Вы не можете легко перекрестно использовать поддомены ajax calls. Существует то, что называется той же политикой происхождения, которая мешает вам это делать. Если вы хотите сортировать эту проблему, вам нужно использовать JSONP или Iframes .
Установите firebug, и вы увидите код http 200 и ошибку: эта ошибка является SOP.
Вы упомянули, что проверяете свойство responseText. Возможно ли, что ваш ответ находится в формате XML?
Если вы отправляете XML-запрос или тип ответа 'text/xml'
, вы получите значение для responseXML
. Я считаю, что свойство responseText
может быть пустым, если оно находится в формате XML.
Случайный пример из google: