Php ajax从文件夹获取图像时出错

Php ajax从文件夹获取图像时出错,php,jquery,json,Php,Jquery,Json,PHP: 这是我用来从文件夹中获取所有图像的两个文件,但不知怎的,我遇到了这个错误。以前没发生过,我不知道是什么事 错误: $.ajax({ type: "POST", url: "class/json-gallery-data.php", context: $("#contentWrapper-body"), contentType: "application/x-www-form-urlencoded", dataType: "json", c

PHP:

这是我用来从文件夹中获取所有图像的两个文件,但不知怎的,我遇到了这个错误。以前没发生过,我不知道是什么事

错误:

$.ajax({
    type: "POST",
    url: "class/json-gallery-data.php",
    context: $("#contentWrapper-body"),
    contentType: "application/x-www-form-urlencoded",
    dataType: "json",
    cache: false,
    data: {
        folder : this.path,
    },
    success:function(d)
    {
        console.log(d);
    },
    error: function(jqXHR, textStatus, errorThrown)
    {
        console.log('jqXHR:');
        console.log(jqXHR);
        console.log('textStatus:');
        console.log(textStatus);
        console.log('errorThrown:');
        console.log(errorThrown);
    }
});
SyntaxError:JSON中位置0处的意外标记<
在JSON.parse()处
在n.parseJSON(jquery.min.js:4)
在Ab(jquery.min.js:4)
在z(jquery.min.js:4)
在XMLHttpRequest。(jquery.min.js:4)

我有什么问题?有人能指出我的问题并帮我解决吗?

这意味着您的JSON文件返回的是HTML而不是JSON。这很可能是由于打印PHP错误或发生重定向引起的。尝试将
dataType:json
更改为
dataType:text/html
,以准确查看返回的内容而不是json错误消息,然后根据错误内容进行操作。

错误表示浏览器收到的响应不是有效的json。原因有很多——返回HTML而不是JSON、返回错误文本或只是将额外的无关文本转储到输出

您正在输出JSON之外的额外文本-remove
echo$dir
,看起来只有JSON响应:

SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse (<anonymous>)
    at n.parseJSON (jquery.min.js:4)
    at Ab (jquery.min.js:4)
    at z (jquery.min.js:4)
    at XMLHttpRequest.<anonymous> (jquery.min.js:4)

确认-查看浏览器开发工具或中的响应。

我更改为text/html,但没有从文本转换为文本/html@deecheok嗯,可能是
text/plain
那么?同样的,没有从text到text/plain的转换你有一个
echo$dir在您的
echo json_encode($directoryfiles)之前
,这将导致无效的json(因为您有
数据类型:“json”
)我删除了,但仍然有相同的问题,是的,我也注意到了。您是否直接打开了
类/json库数据.php
(您可能需要将
$\u POST[“folder”];
更改为
$\u GET[“folder”]
&&&
class/json gallery data.php?folder=VaildFolderName
用于测试)并查看页面输出的内容?我确实有一个响应文本对象,它显示我的主html文本。这有什么意义吗?@deecheok你真的应该公布你得到的实际回应。顺便说一下,我几乎不知道PHP输出的
json\u encode(“test”)
将不会是json。请确保验证您的代码是否确实代表您的问题,并验证所有错误消息是否与代码一致。我从主html文本中获取了响应文本对象。您应该编辑您的帖子,以提供调查的详细信息。很明显,因为你已经看过Fiddler中的回复,你知道返回的是什么-发布可以让某人回答你的问题。我确实将所有php代码更改为echo json_encode(“文本”),我仍然遇到同样的问题。我在单页应用程序中使用它,我想这可能是上下文的问题。@deecheok请阅读如何编辑文章,并编辑你的问题,包括你调查的细节和适当的解释。
SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse (<anonymous>)
    at n.parseJSON (jquery.min.js:4)
    at Ab (jquery.min.js:4)
    at z (jquery.min.js:4)
    at XMLHttpRequest.<anonymous> (jquery.min.js:4)
$dir = "../../../img/brand-product/".$folder."/";
echo $dir;