-3

我有一个 opencart 商店。在本地,上传图像没有故障。在线,它仅适用于图像非常小的情况。如果我上传一张 300kb 的图片,上传旁边的加载 gif 会一直旋转,我会收到错误消息: 在此处输入图像描述

ajaxupload.js:

Line 609: if (response) {
Line 610:    response = eval("(" + response + ")");
Line 611: } else {
Line 612:    response = {};
Line 613: }

为什么会这样?

编辑:我做了 console.log(response) ,你是对的,返回的是 404 页面的 HTML。但是怎么可能太大呢?如果图像是 100kb,它可以工作,但如果它是 130kb,则不能。

为什么我被否决了?

4

3 回答 3

1

您的 Post 请求是 404ing,因此响应是不可解析的 JSON。看起来您的 URL/在查询变量中有未编码的 s。确保使用encodeURIComponent()或其他一些功能来确保您的 url 被正确转义

于 2013-09-11T11:34:44.920 回答
0

从错误中我相信您的响应不是有效的 JSON。顺便说一句 eval 是邪恶的,所以使用起来要好得多JSON.parse

您可以在此处检查您的 JSON:http: //jsonlint.com/


编辑:有人问为什么 eval 是邪恶的,所以这里有一些原因

  • 它比 JSON.parse 慢,因为它实际上启动了一个编译器
  • 如果没有正确完成,您最终可能会受到 XSS 攻击
  • 它继承执行上下文和调用它的范围

如果你需要支持旧的 IE 版本,你也不需要使用 eval()。您可以使用优秀的 JSON 库:https ://github.com/douglascrockford/JSON-js 这将为您提供...JSON.parse对旧 IE 的支持。

于 2013-09-11T11:33:46.607 回答
-1

尝试在该错误之前重写该行..(不要复制和粘贴它)..有时可以

于 2013-09-11T11:34:34.107 回答