我有一个PHP/JS页面,通过JQuery ajax调用另一个PHP脚本来调用REST服务并将响应发送回PHP/JS页面。我这样做是因为我无法找到一种非JSONP的方法从JS中调用服务(不同的域)。
总之,在家里可以完美地工作。我在办公室部署后首先遇到了像这样的apache错误:
问题(2)在分块编码数据中
我能够通过将以下内容添加到我的curl选项中来解决这个问题 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_0
但是,现在传输的数据开头和结尾都有一个带有问号的菱形字符等不属于数据的字符。从我发现的情况来看,这可能是一个编码问题,但我的修复尝试没有起作用。
再次强调,从家中完美地工作......但在公司不行。
非常感谢任何帮助。
------------------------------编辑如下----------------------
编码问题首先出现在服务返回的响应中。这是发送/接收的代码:
总之,在家里可以完美地工作。我在办公室部署后首先遇到了像这样的apache错误:
问题(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);
我将$response记录到磁盘上,并在JSON前看到了一个ó,之后看到了一个Ê。
------------------------------ 接下来是第二次编辑 -----------------------------
显然,我需要更改为这样:
$request_headers[] = 'application/x-www-form-urlencoded';
谢谢你的建议。