我有一个网页,它公开了一些公共接口,这些接口像其他页面的简单AJAX调用一样被访问。例如:
http://domain1.com/interface/function.php :
$json['result'] = ... // fill with data
$json['ok'] = true;
echo json_encode($json);
http://domain2.com/application.php :
$call = 'http://domain1.com/interface/function.php';
$curl = curl_init($call);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$call_data = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
print_r($error);
print_r($call_data);
问题是$ call_data为空。我已经尝试使用* file_get_contents()*和其他curl参数而没有成功。另外,如果我通过以下方式更改 application.php 中的第一行
$call = 'http://www.google.com/';
$ call_data获取正确的文件内容(当然是Google主页内容)。更多,* curl_error()*不会返回任何错误。发生了什么?为什么呢?
答案 0 :(得分:0)
上周末我也有同样的事情。
如果您有一些htaccess文件或类似的东西统一服务证明器的url并添加/或进行某种重定向,这可能会导致问题 - curl_exec($curl);
和curl_error($curl);
都是空字符串。
答案 1 :(得分:-2)
来自PHP curl_exec
手册:
成功时返回TRUE,失败时返回FALSE。但是,如果设置了CURLOPT_RETURNTRANSFER选项,它将在成功时返回结果,在失败时返回FALSE。
您确定已将CURLOPT_RETURNTRANSFER
设置为true吗?