如何将json响应从一个php页面重定向到另一个?

时间:2011-05-30 10:24:39

标签: php ajax json

场景如下:在page3.php中有两个名为page1.php和page2.php.onClick的php页面,ajax请求被发送到page1.php。我必须将此请求重定向到处理发生的page2.php。现在我需要在page1.php中获取已处理的数据并将其转换为json并将json响应发送到page3.php。因此page1.php就像page3.php和page2.php之间的通信的中间页面。

如果我在page1.php中使用header(“Location:page2.php”),那么我无法从page2.php获取处理过的数据。(因为我需要page1.php中处理过的数据) 请建议如何做到这一点?

3 个答案:

答案 0 :(得分:1)

你能不能只是require page2.php?

我的意思是:

page3.php  ->  AJAX request to page1.php
page1.php  ->  $request = json_decode(AJAX request from page3.php)
               require page2.php
page2.php  ->  process $request
               populate $response
page1.php  ->  echo json_encode($response)
page3.php  ->  AJAX response from page1.php

答案 1 :(得分:0)

page2.php 上写echo json_enode($return_data)

并在json_decode($output,true); page3.php 上检索并存储到$_SESSION变量和

page3.php 上的

$_SESSION['']

检索数据

参考:

<强> json_encode

<强> json_decode

答案 2 :(得分:0)

我不确定您是否可以重定向这样的ajax请求。如果有人知道,请告诉我。根据我对这些事情的了解,我觉得你使用的方法很糟糕。

我建议将其作为一个例子:

  • 创建一个类来处理你的 处理。原因是 因为你可能会使用同样的东西 不止一次,你不必 然后复制代码。

  • 然后,您可以在第1页上要求此类文件require_once('path/to.file');

  • 接下来,在第1页上处理您的ajax请求的函数或脚本您可以创建处理类的新实例并将数据传递给它。进行处理并返回数据。

到达我要去的地方?无需重定向,只需在对象中包含您的处理。

这是一个例子

$processing = new Processing($_POST);
$return_data = $processing->run();

return json_encode($return_data);