wordpress CMS主题 微信
Home > JS应用 > angular6.0使用教程:angular为啥调用不到thinkphp接口的数据

angular6.0使用教程:angular为啥调用不到thinkphp接口的数据

高时银博客 JS应用 点击: 34 次 0 1
  • 标签:
  • 在使用angular6.0开发项目时,可能会要调用外部服务器的接口来获取数据。我在用angular6.0开发项目时,就曾用到thinkphp开发的接口。而且在调用thinkphp接口时碰到一个很奇葩的问题:通过angular6.0的http来调用thinkphp接口的数据时获取不到数据,并如下图的错误提示:angular6.0使用教程:angular为啥调用不到thinkphp接口的数据

    为什么会出现这样的错误?为什么angular调用不到thinkphp接口的数据?莫非angular与thinkphp有冲突?我的angular调用代码如下:

    this.http.get('http://localhost/dream/index.php/home/index/slide').subscribe(
    function(data){ console.log(data); },
    function(err){ console.log(err); }
    )

    从上图中的错误提示中可以看出,是获取到的数据的json格式有错误,也就是说,数据已经获取到,只是json数据格式有误。

    接下来,我们点击“network"网络查看一下接口文件的状态,如下图:

    angular6.0使用教程:angular为啥调用不到thinkphp接口的数据

    从上图中我们可以看出,json数据已传递过来了,只是同时还有一些HTML代码。再看图1中的错误提示【Unexpected token < in JSON at position 3270 at JSON.parse】 ,意思是【在json数据中存在 < 这个符号,2个图片一对比,我们就不难看出,是这些HTML代码在做怪。

    再仔细查看一下这些HTML代码,倒底是个什么东东,不看不知道,一看吓一跳,

    angular6.0使用教程:angular为啥调用不到thinkphp接口的数据

    用过thinkphp的应该了解,这些HTML代码是thinkphp的底部跟踪 提示信息。这说明,thinkphp服务器就该开启了“底部跟踪”。

    打开thinkphp的配置文件config.php,果然开启了“底部跟踪”:

    angular6.0使用教程:angular为啥调用不到thinkphp接口的数据

    果断关闭这个thinkphp的 底部跟踪,再刷新一下angular项目页面,问题解决。

    【注】

    thinkphp的这个底部跟踪功能,在我们开发thinkphp项目时,是有一定的需要的,它会提示项目页面打开时间、调用了几次数据库、sql语句等等,可以清楚地了解我们写的thinkphp的代码是否高效。所以在thinkphp项目开发时,有必要打开这个底部跟踪。如果项目完工后,一定要关闭这个底部跟踪。

    我就曾因为没有关闭这个底部跟踪,导致angular调用thinkphp接口的数据获取不到数据,而百度中也找不到相应的问题解决方案,让我曾苦恼了一段时间,一直以为是angular的问题,却不曾想是thinkphp的问题。


    文章作者:高时银博客
    本文地址:http://wanlimm.com/77201806135663.html
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    目前还没有评论。赶快来坐沙发吧。

    发表评论