Php 使用ajax发布数据,然后从服务器重定向浏览器

Php 使用ajax发布数据,然后从服务器重定向浏览器,php,jquery,ajax,redirect,curl,Php,Jquery,Ajax,Redirect,Curl,我有以下服务器端CURLpost函数。 从ajax中,使用curl将值发布到下面的URL,只有在出现错误(如提供的apikey无效等)时,我才会得到响应 如果一切顺利,它应该重定向到另一个成功页面。下面的url有一个动态表单,当一切顺利时会发布到另一个url。 但这不会重定向浏览器。为什么会发生这种情况 在使用ajax POST时,我是否可以按照下面的URL进行重定向 如果这是一个正常的表单发布,它就工作了。数据被发布到这个url,这个url端点有一个动态表单,它被提交到另一个url,我将被带到

我有以下服务器端
CURL
post函数。 从ajax中,使用curl将值发布到下面的URL,只有在出现错误(如提供的apikey无效等)时,我才会得到响应

如果一切顺利,它应该重定向到另一个成功页面。下面的url有一个动态表单,当一切顺利时会发布到另一个url。 但这不会重定向浏览器。为什么会发生这种情况

在使用ajax POST时,我是否可以按照下面的URL进行重定向

如果这是一个正常的表单发布,它就工作了。数据被发布到这个url,这个url端点有一个动态表单,它被提交到另一个url,我将被带到那里

<?php
    $url = 'https://exampletestdomain.com/js_opencart/submit';
    $curl = curl_init($url);

            curl_setopt($curl, CURLOPT_PORT, 443);
            curl_setopt($curl, CURLOPT_HEADER, 0);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($curl, CURLOPT_FORBID_REUSE, 1);
            curl_setopt($curl, CURLOPT_FRESH_CONNECT, 1);
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
            curl_setopt($curl, CURLOPT_TIMEOUT, 10);
            curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data, '', '&'));

            $response = curl_exec($curl);

            $json = array();

            if (curl_error($curl)) {
                $json['error'] = 'CURL ERROR: ' . curl_errno($curl) . '::' . curl_error($curl);

                $this->log->write('AUTHNET AIM CURL ERROR: ' . curl_errno($curl) . '::' . curl_error($curl));
            } elseif ($response) {
            }

    ?>

当您从AJAX发送请求时,问题是服务器将结果推还给您,并且无法重定向。通过AJAX将重定向url传递回客户端,然后使用:

window.location.href = url

重定向不是一个纯重定向的ind,它不是一个被重定向到的静态页面。服务器正在使用一些数据向url进行动态表单发布。一种向支付网关发布数据的方式,因此它在重定向后显示支付网关页面。因此,如果我理解正确,您不应该通过ajax发送请求,而应该通过GET锚(带表单)发送请求,这样您就可以使用
头(“Location:xx”)