изменить тип пантомимы в php

Судя по этим двум вопросам

Ошибки приведения при попытке вернуть IQueryable

и

Объединить два EF Запросы, Невозможно привести объект типа System.Data.Entity.Infrastructure.DbQuery к System.Collections.Generic.IEnumerable

, вероятно, вы не можете привести, потому что ваши анонимные типы не совсем соответствуют друг другу (поэтому # 1 может быть там, чтобы указать, что это не тот же тип).

Попробуйте проверить, имеют ли оба типа одинаковый набор свойств (одинаковые типы и одинаковые имена; никаких дополнительных свойств, которые объявлены в одном типе, но не в другом).

Удачи!

51
задан 02.10.2019, 11:27

4 ответа

header('Content-type: application/xml');
[Еще 113] информация, доступная в документации PHP для header()

108
ответ дан 02.10.2019, 11:28
  • 1
    хорошо это - сервер к серверу, не клиентский браузер к серверу. – codecompleting 19.12.2019, 02:13

Я отвечу на обновление, так как предыдущие ответы хороши.
я читал, что Internet Explorer известен за игнорирование заголовков типа Пантомимы (большую часть времени?) для доверия содержанию файла (который может вызвать проблемы в некоторых случаях).

Mmm, я сделал простой тест:

<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root><foo a="b">Tada</foo></root>';
?>

Internet Explorer 6 отображает его правильно как XML. Даже если я удаляю определение XML.
необходимо указать, какая версия проблематична.

На самом деле, как я записал выше с IE (6, по крайней мере), Вам даже не нужен тип контента, он распознает данные XML и отображает его как дерево. Ваш XML корректен?

[Обновление], Испытанное с IE7 также, добавляя? format=xml также, все еще отображая XML правильно. Если я отправляю уродливый XML, IE отображает ошибку. Протестированный на WinXP Pro SP2 +

3
ответ дан 02.10.2019, 11:28
  • 1
    Один IE типа имеет проблемы с, XHTML, который является application/xhtml+xml или application/xml - IE не представляет XHTML, отправленный ни с одним из этих корректных типов контента (можно неправильно отправить как текст/HTML, чтобы вынудить IE использовать свой режим HTML, но это неправильно и может вызвать другие побочные эффекты). – joelhardi 02.10.2019, 11:28
  • 2
    Я думаю it' s text/xhtml, что IE 6 имеет проблему с; I' ve никогда не играл с ним, но I' ve слышал много жалоб на это. Я полагаю, что IE 6 не будет просто работать при отправке text/xhtml, но I' m не уверенный. – dirtside 02.10.2019, 11:29
  • 3
    А-ч! Хорошо.:-) Все мы извлекаем уроки из ошибок (даже те из других людей!). – PhiLho 02.10.2019, 11:29
  • 4
    Извините, моя ошибка, пример кода, который я скопировал, сделала отправил XML через htmlentities для вывода и меня didn' t уведомление до сейчас! – Sam 02.10.2019, 11:30
  • 5
    индексом пика Вы имеете в виду индекс выходного массива, где пик в графике находится? – Ben Taliadoros 04.12.2019, 01:15

Установите Content-Type заголовок:

header('Content-Type: text/xml');

, Хотя необходимо, вероятно, использовать "application/xml" вместо этого.

17
ответ дан 02.10.2019, 11:29
  • 1
    Кэширующимся прокси позволяют отредактировать text/* для изменения кодировки символов. Так как XML также объявляет свою кодировку символов в самом документе, Вы действительно don' t хотят, чтобы это произошло, поскольку Вы могли бы получить несоответствие. Таким образом, использование application/xml вместо этого, и кэширующиеся прокси будет рассматривать содержание как двоичные данные и оставлять его без помех. – TRiG 02.10.2019, 11:30
  • 2
    Взаимодействия между текстом /* типы контента HTTP относительно кодирования, главным образом: см. annevankesteren.nl/2005/03/text-xml – John Millikin 02.10.2019, 11:30
  • 3
    Вы получили меня - каково различие между text/xml и application/xml, хотя? – Sam 02.10.2019, 11:30
  • 4
    Referer shouldn' t быть розданным с HTTPS: stackoverflow.com/a/8848843/372643 – Bruno 19.12.2019, 02:12

Необходимо отправить Content-Type заголовок прежде , Вы отправляете любой вывод.

header('Content-Type: text/xml');
4
ответ дан 02.10.2019, 11:30
  • 1
    Большое спасибо Paul, я вижу, где это было в предыдущих ответах теперь, я добрался для запущения некоторых тестов теперь! спасибо – Ben Taliadoros 04.12.2019, 01:15

Теги

Похожие вопросы