1

我正在将另一家公司的服务与我们的服务集成,他们想向我们发送一个 xml 发布请求并使用 xml 获得 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;

但我不知道如何做到这两点?

此外,这是通过拦截 pre_get_posts 过滤器在 Wordpress 中完成的,该过滤器工作正常。

4

1 回答 1

3

您不能仅在 HTTP 标头中执行此操作。执行header("Location: http://www.example.com/");会导致PHP做一个隐式 Status: 302响应,header()调用前的输出也会触发一个Warning。

此外,由于您将 XML 而非 HTML 发送到浏览器,因此没有其他机制可以执行重定向。要么你误解了你的要求,要么你正在集成的 API 要求你做一些不可能的事情。

于 2013-09-23T20:23:13.370 回答