首先让我告诉你,我已经找到了一些答案,虽然这对我有所帮助,但我的主要问题仍未得到解决。
我使用了文件上传器(版本9.8.0)@ http://blueimp.github.io/jQuery-File-Upload/
(第1个问题)
在我开始上传之前,一切似乎都运行良好。完成上传后,它会为每个图像显示以下错误(而不是“上传成功”消息)。
在Google Chrome上,它说:“SyntaxError:意外的令牌<”
在Mozilla FireF上。它说:“SyntaxError:JSON.parse:JSON数据第1行第1列的意外字符”
我搜索了一些解决方案,但我无法弄清楚如何应用这些解决方案。顺便说一句,它添加了图像,尽管有错误。
答案 0 :(得分:11)
如果查看浏览器中的网络选项卡,您调用的方法是抛出一个带有html的错误页面(以<开头,并且无法在JSON中解析)。
例如在谷歌浏览器中:
我在ASP.Net MVC上有一个类似的问题,当一个参数被发送为null并且它在控制器上不可为空时,它有一个不同的上传器。
答案 1 :(得分:1)
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data 看看这个SO,看看你的问题是否相关 基本上,这可能意味着返回的成功消息没有正确的HTML标记,因此浏览器无法显示它们。
答案 2 :(得分:1)
很可能你正在尝试JSON.parse
服务器提供的错误消息或其他非JSON响应,这可能是HTML,因为它被阻塞了第一个字符。
我打开控制台,获取产生错误的页面,在开发工具的网络选项卡中找到请求,并检查上传请求的响应选项卡以查看实际返回的内容。
希望看到响应会引导您找到解决方案(如修复错误消息)或可以提出的更具体的问题。
答案 3 :(得分:1)
我通过最后用 index.php
编辑 main.js 文件中的网址解决了这个问题,如下所示:
// Initialize the jQuery File Upload widget:
$('#fileupload').fileupload({
// Uncomment the following to send cross-domain cookies:
//xhrFields: {withCredentials: true},
url: 'imagegallery/server/php/index.php'
});
答案 4 :(得分:0)
这件事发生在我身上。也许这是文件夹权限。 我设置了server / php / files的读写权限,并且有效。
答案 5 :(得分:0)
由于post_max_size和upload_max_filesize太小,并且因为它使用blob发送文件数据,所以它会生成此错误。我在我的php.ini中增加了它们,现在就像魅力一样
答案 6 :(得分:0)
这也发生在我身上。我在Linux服务器上使用PHP。我发现实际上有反斜杠" \"在4或5个地方的代码中它们导致了错误。这样做:
检查第308,790,814,816,819,822,825,828,831,836,842,895,915,973,981和1058行。所有对Imagick()的调用;似乎在他们面前有一个。
我删除了所有这些反斜杠,但不需要关闭错误报告。
示例:
查找代码:
$file = new \stdClass();
替换为:
$file = new stdClass();
答案 7 :(得分:0)
这是最好的答案,我遇到了同样的问题,但是按照以下步骤操作,我很容易看到错误。
1-打开调试器:F12
2-转到“网络”标签
3-进行上传
4-您应该在“网络”标签中看到发送的请求
5-单击该错误请求
6-这将打开一个新窗口,其中包含用于服务器响应的选项卡。此响应很可能是某种异常消息。
感谢StephanC
答案 8 :(得分:-1)
我在php 5.6中遇到过这个问题但在php 5.3中没有。我解决了#34;通过编辑upload.php文件中的错误报告级别来解决此问题:
//error_reporting(E_ALL | E_STRICT);
error_reporting(E_STRICT);