关于SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data错误的解决

    在用浏览器打开本地 .html 网页文件时,firefox出现的错误是:SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data,而chrome出现的错误是:SyntaxError: Unexpected token <   。

    刚看到这个错误,以为是文件本身引用js时出错了。然后就修改源文件,只是改了几个关闭标签,都是小问题,重新加载还是没有解决SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data 这个问题。       

    分析原因,大致有这么几个:

    1,源文件本身有问题;

    2,浏览器配置的问题;

    3,服务器配置的问题;

    接下来一个一个排查。

    1,源文件本身有问题:解决方案:A,把源文件拷贝到其他人的电脑上试,结果显示正常(当然,其他人的电脑上肯定是有服务器的); B,在自己的电脑上双击打开此html文件,也显示正常(因为html文件本身并不需要服务器对其进行处理,而是浏览器直接对其进行解析的,所以并不需要输入网址然后向服务器发送请求)。这样一来,猜测的源文件本身有问题这个原因就可以排除了。

    2,浏览器配置的问题:解决方案:用浏览器打开其他.html文件时,显示正常。这就说明浏览器是能够解析.html文件的,并不是浏览器的问题。

    3,服务器配置的问题:解决方案:其实在把源文件拷贝到其他人电脑上显示正常已经说明了我的服务器配置有问题。而且经过师兄指点,我安装了firebug,显示的错误信息就说明了服务器对json的解析出了问题。

    至此,问题找出来了,就是服务器配置的问题,缺少了能够解析json的配置信息,导致浏览器向服务器发出请求时,服务器不能处理html文件里面的js引用,所以一直在loading状态,而不能返回html页面。

    网上搜了一下,解决方案是,在nginx的配置信息里加入下面的配置信息:

location ~* .(jpg|gif|png|js|css)$ {
        root 你自己的文件路径;
         if (-f $request_filename) {
                 expires max;
                 break;
                 }
 }

然后保存退出,重新启动nginx服务器(sudo /etc/init.d/nginx restart),在重新加载出问题的html页面,就可以正常显示了。至此,问题解决了。

你可能感兴趣的:(nginx服务器配置,nginx,浏览器,js,json)