Json 未捕获的语法错误:意外标记<;论铬
我知道这个问题已经被问了很多次,但我找不到与我的问题相似的地方。我只在Chrome浏览器中遇到这个错误,在其他浏览器中一切正常。我在几个地方使用JSON返回数据,但由于我的代码在其他浏览器中工作,我认为它没有问题。 Chrome没有告诉我哪里有错误(在我的代码中),它告诉我这些错误: 这就是我使用JSON的方式:Json 未捕获的语法错误:意外标记<;论铬,json,google-chrome,Json,Google Chrome,我知道这个问题已经被问了很多次,但我找不到与我的问题相似的地方。我只在Chrome浏览器中遇到这个错误,在其他浏览器中一切正常。我在几个地方使用JSON返回数据,但由于我的代码在其他浏览器中工作,我认为它没有问题。 Chrome没有告诉我哪里有错误(在我的代码中),它告诉我这些错误: 这就是我使用JSON的方式: $.post("getData.php", {'id' : id}, function(data){ var obj = jQuery.parseJSON(data)
$.post("getData.php", {'id' : id}, function(data){
var obj = jQuery.parseJSON(data);
.
.
.
... some mysqli query
$data = $query->fetch_assoc();
echo json_encode($data);
所以我看这里没有问题,有人能帮我吗。你可以检查你的网络(控制台)并从服务器上看到答案。。。“要覆盖在Chrome(可能还有Safari)中可能遇到的错误,请尝试将Ajax参数设置为
dataType:“json”
。然后不应调用parseJSON()obj上的
,因为您将得到反序列化的响应。未捕获语法错误:意外标记如果您试图执行Ajax文件上载或类似操作,您必须在打印Ajax响应文本后不再显示进一步的HTML。这可能会给出此错误消息。如果如果你使用的是PHP框架,你必须遵循框架语法来结束应用程序。如果你是纯PHP代码,你可以在ajax响应文本后使用“退出”
希望这将有助于节省一些人寻找解决方案的时间。:)编码愉快!!!我的解决方案非常令人难以置信
<script type="text/javascript" src="/js/dataLayer.js?v=1"></script>
src属性中的文件名必须为小写:
<script type="text/javascript" src="/js/datalayer.js?v=1"></script>
这就莫名其妙地解决了这个问题
在这两种情况下,参考返回404进行测试。将其更改为
$.post({
url = 'getData.php',
data : { 'id' id } ,
dataType : 'text'
});
通过这种方式,ajax不会试图将数据解析为json或类似的格式。似乎每个人都有与此不同的经验,也有不同的解决方案:)这是我的“故事”
我的东西来自一个使用ajax获取的validate.php文件。输出是:
$response['status'] = $status;
$response['message'] = $message;
$response['param'] = $param;
echo json_encode($response);
以及导致“意外标记我已对我的此代码进行了注释:/$('#description').val('')的错误我得到了那个错误。我得到了同样的错误(“未捕获的语法错误:意外的标记
我在自定义404错误处理文件时遇到了这个问题。它没有抛出一些html内容,而是重定向到主页url。它工作得很好
然后,我将其用作下一个项目的框架,因此没有改变新项目上的“route_to_main_page”(不同的URL)实际上变成了“route_to_external_URL”,因此代码中的任何404错误(缺少css样式表、js库)都会返回“未捕获SyntaxError:意外标记具有相同的错误。我的问题是由于在我的项目目录中移动,并且未能调整服务器上静态文件的路径以反映新路径引起的(即was/src/public
,但应该是/public
).当我将一些js文件移动到文件夹中,然后部署到生产环境中时,我遇到了类似的问题。经过一番努力,我发现js文件实际上并没有部署到生产环境中。所以
确保显示错误的文件在中确实存在
服务器
给出的路径是正确的
因此,在没有js文件的情况下,服务器会以如下方式响应
<!doctype html>
<html>
<someTag />
<AnotherTag />
</html>
这就是为什么我们得到了未捕获的语法错误:意外标记它对我唯一有效的地方是当我将脚本放在index.html
所在的public
文件夹中,然后将这些
放在
标记中。可能是您试图请求的资源处于受限访问之下通过您的web应用程序配置,即必须登录用户,应用程序才能为文件提供服务
尝试将其添加到Web.Config文件中(这是针对.NET应用程序的):
您可以将其放置在关闭配置标记之前的任何位置。在我的情况下,主机已在我的web.config
文件中启用了iisnode
,因此我已发表了评论
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<!-- <add name="iisnode" path="*.js" verb="*" modules="iisnode" /> -->
</handlers>
</system.webServer>
</configuration>
状态码是什么,200 OK?如果不是,你可能会得到错误响应的html,它不会解析和生成那种错误。可能是SQL查询的问题。一切都是200 OK,在某些地方我找到了200 OK。正如我所说的,它在Firefox中工作得很好,我看不出为什么会出现错误Firefox中的Works你试过关闭AdBlock并测试它吗?@Mario是的,我试过了,但它可能是错误的重复:未捕获的语法错误:意外标记你能提供一个实例吗?很抱歉,我不能。我注意到它给了我第一个<符号的错误。所以当前第一个<符号在,如果我删除<,那么它会给我相同的错误,但是相反,<它说!是意外的标记。不……如果您收到来自jquery无法解析的服务器的响应,您将看到类似这样的未经考虑的错误……许多看到的错误也是“o”或“u”这封信是jquery无法解析的响应的第一个信号……我再也看不到这个错误了,但我没有从服务器收到任何数据,尽管这段代码在Firefox中也可以工作:您希望从ajax响应中得到什么样的数据?html,JSON?到目前为止,我已经有两次遇到这个问题。第一次解决方案是替换所有将.php
文件中的
s以不同的条目回送到一个数组中。第二次(刚才),它更简单:我必须删除.php
文件顶部的注释(文件开始时是这样的:
)。所以这就是对我仍然不起作用的地方。马里奥的答案是什么,我找不到。我也遇到了同样的问题,所以将文件名改成了另一个名称,它起了作用。我的文件名没有大写字母。当我的脚本在子目录中时,我就遇到了这种情况
<script type = "text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js"></script>
<script type = "text/javascript" src="//www.jqueryscript.net/demo/Creating-Animated-Gauges-Using-jQuery-Raphael-js-kumaGauge/js/kuma-gauge.jquery.js"></script>
header("Location: route_to_main_page");
<!doctype html>
<html>
<someTag />
<AnotherTag />
</html>
<location path="js/resourcefile.js">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<!-- <add name="iisnode" path="*.js" verb="*" modules="iisnode" /> -->
</handlers>
</system.webServer>
</configuration>