gpt4 book ai didi

javascript - XAMPP 返回错误 "Unexpected end of JSON input"

转载 作者:行者123 更新时间:2023-12-03 06:34:08 30 4
gpt4 key购买 nike

我尝试将 XAMPP 与以下代码片段一起使用:

PHP:

<?php
$api_endpoint = 'https://api.forecast.io/forecast';
$api_key = 'my-api-key';
$url = $api_endpoint . '/' . $api_key . '/' . '37.8267,-122.423';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$curl_response = curl_exec($curl);
curl_close($curl);
echo json_encode($curl_response);
?>

JSON 本身如下所示:

{
latitude: 37.8267,
longitude: -122.423,
timezone: "America/Los_Angeles",
offset: -7,
currently: {
time: 1468248192,
summary: "Clear",
icon: "clear-day"
}
}

JavaScript:

$(document).ready(function(){
$('#myButton').click(function(e){
e.preventDefault();
$('#myButton').fadeOut(300);
$.ajax({
url: 'php/forecast.php',
type: 'GET',
dataType: 'json',
success: function(data, status) {
$('#content').html(data.latitude);
},
error: function(xhr, desc, err) {
console.log(xhr);
console.log("Details: " + desc + "\nError:" + err);
}
});
});
});

我在实时服务器上工作得很好,但是当使用 XAMPP 时,我不断收到错误JSON 输入意外结束。有人在使用 XAMPP 之前遇到过这个问题吗?有什么想法可能导致这种情况吗?

最佳答案

您的代码很好,并且 json 格式也没有问题(如果您的代码在真实的 Web 服务器中工作,则没有理由认为 json 是错误的)。首先,您不需要执行 json_encode 因为您知道您将从 Forecast.io 服务器获得 json 响应。并且您的 ajax 已包含 dataType: 'json'

这里的主要问题是您正在调用通过 SSL ( https://api.forecast.io ) 提供的端点,因此本地 XAMPP 中的 php 服务器需要使用 CA(证书颁发机构)来确保通信有效。

一般来说,XAMPP 不会免费为您提供此功能。因此,从 http://curl.haxx.se/docs/caextract.html 下载最新的 CA pem 文件并将其保存在C:\xampp\php\cacert.pem中;然后编辑C:\xampp\php\php.ini并查找curl.cainfo,取消注释并添加=C:\xampp\php\cacert。 pem 具有 curl.cainfo = C:\xampp\php\cacert.pem

保存文件并重新启动本地 Apache 服务器。就够了。

进一步说明,为了调试您的 php 代码,您可能会考虑回显最终的错误。因此,在您的 php 代码中添加如下内容:

$curl_response = curl_exec($curl);
if(curl_error($curl)) {
echo 'error:' . curl_error($curl);
}
curl_close($curl);
echo ($curl_response);

并确保您可以在 ajax 中捕获错误字符串。

关于javascript - XAMPP 返回错误 "Unexpected end of JSON input",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38311273/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com