我有一个网站www.domain1.com/step1,其中用户在其中填写了姓名,手机,详细信息,在我的www.domain2.com/step2中,我进行了第二步的表单,用户在其中填写了有关个人的更多详细信息信息。我的要求是如何将数据从domain1转移到domain2。 domain1客户端会以类似的网址向我发送发布请求。 domain2.com/redirector。在此url中,我捕获了post参数并在cookie中设置了信息,然后重定向到domain2.com/step2。
我在域2(React + Node)中有服务器端渲染应用程序,因此我写了一条捕获www.domain2.com/redirector(POST)参数的路由,然后重定向到www.domain2.com/step2
app.post('/redirector',function(req, res){
let data = {};
data.name = (req.body.customer_name === undefined) ? null : req.body.customer_name;
data.pan_number = (req.body.pan_detail === undefined) ? null : req.body.pan_detail;
res.cookie('userdata',JSON.stringify(data))
let apiUrl = req.protocol+"://"+req.headers.host+'/step2'
return res.redirect(302, apiUrl);
});
当用户打开www.domain1.com/step1并填写表单,然后在提交时单击,我想调用CURL发布方法以将信息发送到www.domain2.com/redirector。然后应设置cookie,并将其重定向到step2表单。
为了测试这一点,我在php中创建了一个curl文件并发送post params,但是当我重定向到step2时,cookie不会设置。可能有两个方法。
function postRequest($url,$params)
{
$postData = '';
$count = count($params);
foreach($params as $k => $v)
{
$postData .= $k . '='.$v.'&';
}
$postData = rtrim($postData, '&');
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POST, $count);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
$output=curl_exec($ch);
if($output === false)
{
echo "Error Number:".curl_errno($ch)."<br>";
echo "Error String:".curl_error($ch);
}
curl_close($ch);
return $output;
}
$arr = array(
"customer_name"=>"test user",
"pan_detail"=> "XYSNZ");
$d = postRequest('http://www.domain2.com/redirector',$arr);
header('Location: http://www.domain2.com/step2');
如果我在邮递员中访问www.domain2.com/redirector,它将返回cookie,但在curl中,它将不会设置cookie。所以我的方法不好吗?或者还有其他方法可以做到这一点。