gpt4 book ai didi

PHP 将 JSON 返回到 Ajax 仅适用于本地主机

转载 作者:行者123 更新时间:2023-12-01 04:02:40 25 4
gpt4 key购买 nike

我有一个简单的联系表单,并使用 Ajax 通过 PHP 文件处理它...

问题是:它在本地主机上工作得很好,但在实时服务器上却不行!,它在控制台上给了我:

[object Object]
parsererror
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

这是我的代码:

PHP:

if (isset($error) && !empty($error)) {
exit(json_encode(["error" => $error]));
}

还有

exit(json_encode(["success" => "success message"]));

jQuery Ajax:

$.ajax({
url: "./includes/form-processor.php",
method: "POST",
data: data,
dataType: 'json',
success: function (data, textStatus, jqXHR) {
console.log(data);
console.log(data["error"]);
console.log(data.error);
if ('undefined' == data.error || data.error == null) {
message_window.text(data["success"]);
} else {
message_window.text(data["error"]);
}
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR + "\n" + textStatus + "\n" + errorThrown);
}
});

我在这里阅读了很多关于堆栈溢出的类似问题,但他们的大多数答案都提到发生这种情况是因为他们正在通过 jQuery 解析数据 JSON 并再次从后端将其作为 JSON 返回!

所以,实际上这让我不确定我是否从 PHP 文件中正确返回了它!

我尝试通过这种方式从 PHP 返回它:

exit(["success" => "success message"]);

还有

exit("success" => "success message");

还有

exit("success message");

但是效果不太好!

另外,正如我之前所说

it works just fine on the localhost, but it does NOT on the live server!

所以,这听起来很奇怪! o.O

我应该检查什么才能使其在实时服务器上运行?

谢谢

最佳答案

["success"=> "success message"] 是 PHP 5.4 中引入的新数组语法,因此您的生产服务器可能低于 5.4。您应该使用 array("success"=>"success message") 代替。对于您的特定代码,请使用:

exit(json_encode(array("success" => "success message")));

exit(json_encode(array("error" => $error)));

关于PHP 将 JSON 返回到 Ajax 仅适用于本地主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37425605/

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