jQuery AJAX - 在本地主机上使用 XAMPP 时不接收 JSON 数据

Posted

技术标签:

【中文标题】jQuery AJAX - 在本地主机上使用 XAMPP 时不接收 JSON 数据【英文标题】:jQuery AJAX - Not receiving JSON data when on localhost using XAMPP 【发布时间】:2021-05-02 21:33:36 【问题描述】:

我正在使用此代码:

$.ajax(
    type: 'post',
    url: "http://www.localhost/do_getmemes.php",
    dataType: 'json',
    data: userid: userid, lastid: lastID,
    success: function(data) 
        console.log('bla');
        console.log(data);
    
);

do_getmemes.php 内部,post 参数被成功接收,json 正在生成,但我在success 上没有得到它??控制台没有显示任何内容。它在网站上运行良好,但在使用 XAMPP 的本地主机上却不行

这一切都在php文件中工作,这是最后:

file_put_contents('test.json', json_encode($array)); // file generated and not empty
echo json_encode($array);

这里有什么问题?

编辑:

AJAX 通常有效,我通过获取简单字符串进行测试:

$.ajax(
    url: "http://www.localhost/contact/text.php",
    success: function(data) 
        console.log(data) // got it
    
);

【问题讨论】:

您是否考虑过在您的 php 文件中将某些内容记录到 error_log() 以确保您得到它?也许可以尝试直接使用curl 或postman 调用它 错误日志没有显示这个 php 文件的任何内容,我不知道为什么会这样,因为 json 是生成的而不是空的 http://www.localhost/do_getmemes.php?将代码转移到问题时,这是否被破坏了? 您是从文件系统还是从 XAMPP Web 服务器加载页面? AJAX 不能在文件系统中工作。 我在装有 Windows 10 的电脑上使用 XAMPP。AJAX 确实有效,我通过获取简单文本对其进行了测试,请在 1 分钟内检查问题的更新 【参考方案1】:

问题是不相关的警告,这些警告也通过 API 发回并导致 parsererror SyntaxError: Unexpected token < in JSON at position 0 错误。

除了修复它们之外,这是确保 API 能够正常工作的方法:

禁用 PHP 文件中的警告:

error_reporting(0); 
ini_set('display_errors', 0);

【讨论】:

以上是关于jQuery AJAX - 在本地主机上使用 XAMPP 时不接收 JSON 数据的主要内容,如果未能解决你的问题,请参考以下文章

本地 JQuery 和 JQuery 移动文件在本地主机上不起作用

本地主机上 laravel 5.3 中 ajax 发布请求中的 CSRF 令牌不匹配异常

无法让本地主机上的 ajax 调用 require_once 工作

Jquery .change() 函数在本地主机上不起作用

$.post & AJAX 在服务器上不工作,但在本地主机上工作正常

jQuery .ajax() POST 请求抛出 405(不允许的方法)但 GET 不会