Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将json响应从一个php页面重定向到另一个页面?_Php_Ajax_Json - Fatal编程技术网

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

如何将json响应从一个php页面重定向到另一个页面?,php,ajax,json,Php,Ajax,Json,该场景如下:有两个名为page1.php和page2.php.onClick的php页面,单击page3.php中的一个按钮,会向page1.php发送ajax请求。我必须将这个请求重定向到page2.php,在那里进行处理。现在我需要在page1.php中获取处理后的数据,并将其转换为json,然后将json响应发送到page3.php。因此page1.php就像是page3.php和page2.php之间通信的中间页面 如果我在page1.php中使用header(“Location:pag

该场景如下:有两个名为page1.php和page2.php.onClick的php页面,单击page3.php中的一个按钮,会向page1.php发送ajax请求。我必须将这个请求重定向到page2.php,在那里进行处理。现在我需要在page1.php中获取处理后的数据,并将其转换为json,然后将json响应发送到page3.php。因此page1.php就像是page3.php和page2.php之间通信的中间页面

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

onpage2.phpwrite
echo json\u enode($return\u data)

并通过
json\u decode($output,true)在page3.php上检索并存储到
$\u会话中
变量和

page3.php上通过
$\u会话['']

参考:


你能不能不仅仅要求
页面2.php

我的意思是:

page3.php->对page1.php的AJAX请求
page1.php->$request=json_decode(来自page3.php的AJAX请求)
需要page2.php
page2.php->处理$request
填充$response
page1.php->echo json_encode($response)
page3.php->来自page1.php的AJAX响应

我不确定您是否可以像这样重定向ajax请求。如果有人知道,请给我看其他的。从我对这些事情的了解来看,我觉得你在用一种不好的方式来做这件事

我想举一个例子:

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

  • 然后,您可以在第1页,像这样要求这个类文件
    require_once('path/to.file')

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

明白我的意思了吗?无需重定向,只需将处理包含在对象中即可

这里有一个例子

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

return json_encode($return_data);

那是不可行的。如果从一个php页面重定向到另一个页面,将向ajax调用发送一个301 http响应。无论如何,我看不出在两个php页面之间进行重定向有什么意义。也许你可以用条件包含/要求来解决?