PHP卷曲响应因网络而异(编码问题?)

chr*_*ead 5 php curl

我有一个PHP/JS页面,它使得JQuery ajax调用另一个PHP脚本,该脚本调用REST服务并将响应发送回PHP/JS页面.我这样做是因为我找不到非JSONP方式从JS(不同的域)调用服务.

无论如何,从家里它完美的工作.我在办公室部署,并首先得到这样的apache错误:

Chunked-Encoded数据中的问题(2)

通过在我的curl选项中添加:CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_0,我能够解决这个问题.

然而,现在出现的数据在钻石中有一个问号,在开头和结尾都有不属于的字符等.从我发现这可能是一个编码问题,但我努力解决它不行.

再次,从家里完美工作......而不是工作.

任何帮助非常感谢

------------------------------编辑关注------------------ -----------

编码问题首先出现在服务的响应中.这是发送/接收的代码:

            $request_headers    = array();
            $request_headers[]  = 'Content-Type: application/json';
            $request_headers[]  = 'Authorization: Bearer ' . $token;

            $options = array(
                CURLOPT_URL            => $url,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_HEADER         => false,
                CURLOPT_VERBOSE        => true,
                CURLOPT_FOLLOWLOCATION => true,
                CURLOPT_ENCODING       => '',
                CURLOPT_AUTOREFERER    => true,
                CURLOPT_CONNECTTIMEOUT => 120,
                CURLOPT_TIMEOUT        => 120,
                CURLOPT_MAXREDIRS      => 10,
                CURLOPT_SSL_VERIFYPEER => 0,
                CURLOPT_HTTPHEADER     => $request_headers,
                    CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_0
            );

            curl_setopt_array( $ch, $options );
            $response = curl_exec($ch); 
Run Code Online (Sandbox Code Playgroud)

我记录了对磁盘的响应,并在JSON之前看到了一个ó,之后看到了一个Ê.

------------------------------第二次编辑跟进----------------- ------------

我显然需要改为:$ request_headers [] ='application/x-www-form-urlencoded';

谢谢你的提示.

ɢʜʘ*_*ɔʘɴ 5

我发现它从其他栈的问题在这里,它解决了我的问题,以及,它看起来像袅袅的版本问题.

将此选项添加到curl处理程序中:

curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
Run Code Online (Sandbox Code Playgroud)