【发布时间】:2019-08-15 19:44:00
【问题描述】:
我正在开发一个网页,用户将在其中输入数字,该数字将用作 API 调用的查询参数,并且需要在网页中显示响应。我正在使用以下命令在同一 mac 上运行这个本地 mac 和 php 服务器
php -S localhost:8080 -t /Users/demouser/my_website
我已使用 phpinfo() 验证了 curl 已启用。
我在 HTML 文件中有以下函数,将使用 javascript 点击按钮调用。
function performRequest(todoid) {
$.ajax({
url:"api_call.php",
type: "GET",
data: { todoid: todoid },
success:function(result){
console.log("JS result"+result);
}
});
}
我的 PHP 文件如下所示
<?php
if (isset($_GET['todoid']))
{
callExternalAPI($_GET['todoid']);
}
function callExternalAPI($todoid)
{
$result = callAPI("https://jsonplaceholder.typicode.com/todos/".$todoid);
print_r("Result from URL".$result);
$info = json_decode($result, true);
echo("Info from API".$info);
}
function callAPI($url)
{
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_ENCODING, "identity");
curl_setopt($curlObj, CURLOPT_URL, $url);
if (!$result = curl_exec($curlObj))
{
echo "Failed to perform request".curl_error($curlObj);
}
curl_close($curlObj);
return $result;
}
?>
但在 Ajax 成功回调中,我得到了
JS resultResult from URLhttps://jsonplaceholder.typicode.com/todos/1Info from API
当我在浏览器或邮递员中点击相同的 API 时,我得到了正确的 json 响应。我真的不明白我在这里缺少什么。谁能帮我理解这个问题?谢谢
【问题讨论】: