2013-09-23 3 views
1

Я интегрирую услуги других компаний с нашими, и они хотят отправить запрос на отправку xml нам и получить ответ 200 с помощью xml, но затем мне также нужно отправить запрос.PHP - Как отправить ответ кода 200 на запрос, а также отправить его?

Их пользователь отправляется на наш сайт, когда нажимает на ссылку на своей странице, которая отправляет нам запрос на отправку xml. Мы должны отправить ответ xml обратно, а затем переслать пользователя на нашу домашнюю страницу.

Я выяснил тот или иной, но не оба, установив заголовки.

Для 200 ответа:

header("Content-type: text/xml"); 
header("HTTP/1.1 200 OK"); 
header("Status: 200"); 

echo 'my-xml'; 
exit; 

Для форварда:

header("Location: http://www.example.com/"); 
exit; 

Но я не могу понять, как сделать так?

Кроме того, это выполняется в Wordpress путем перехвата фильтра pre_get_posts, который отлично работает.

+0

Почему вы хотите это сделать? вы можете отправить сообщение «303 See Other». – kelunik

+0

вы не можете. Для «местоположения» требуется код ответа 301, который заменит «200». Вы не можете делать два разных ответа, как они хотят. –

+0

Заголовки должны предшествовать выходу. Здесь вы либо должны перенаправлять и выводить, что не имеет смысла. Или вы должны выводить, а затем перенаправлять, что не сработает. – Boaz

ответ

3

Вы не можете делать это только в заголовках HTTP. Выполнение заставляет PHP делать неявный ответ , а выход до вызова header() также вызывает предупреждение.

Кроме того, поскольку вы отправляете XML в браузер, а не в HTML, нет другого механизма, который может выполнять перенаправление. Либо вы не понимаете, какое требование вам дано, либо API, с которым вы интегрируетесь, просят вас сделать что-то невозможное.

+0

Вы также можете отправить '301' и' 303', может быть, больше при перенаправлении. – kelunik

+0

Есть ли способ переслать без установки заголовка? HttpResponse :: send() разрешает действия после этого, если я заменил исходный ответ заголовка на это? –

+0

@AustinW 1. № 2. № 3. Попросите образец кода. 4. ??? 5. Прибыль. – Sammitch

Смежные вопросы