未捕获的SyntaxError:意外的令牌<:

时间:2013-09-11 11:30:56

标签: javascript jquery opencart

我有一个opencart商店。在本地,上传图像工作没有故障。在线,仅在图像非常小时才有效。如果我上传一张300kb的图像,上传旁边的加载gif会继续旋转,我会收到错误: enter image description here

ajaxupload.js:

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

为什么会这样?

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

为什么我被投票?

3 个答案:

答案 0 :(得分:1)

您的帖子请求是404,因此响应不是可解析的JSON。您的网址在查询变量中看起来没有编码/。请务必使用encodeURIComponent()或其他一些功能来确保您的网址已正确转义

答案 1 :(得分: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的支持。

答案 2 :(得分:-1)

尝试在错误之前重写该行..(不要复制并粘贴它)..有时工作