【问题标题】:AngularJS $http.get "Unexpected token ..."AngularJS $http.get“意外的令牌......”
【发布时间】:2015-02-23 14:25:27
【问题描述】:

我尝试从另一台服务器的 .txt 文件中获取字符串。

当我运行请求时,控制台显示此错误:

“意外的令牌/” / 是占位符,错误包含服务器上字符串的第一个字母。

我的代码:

var url = "http://r0bs.net/ihdccjsonapi.php?url="+encodeURIComponent(content);
$http.get(url)
  .success(function (data) {
    console.log(data);
  })

当您将手册导航到该网址时,您会看到:

家庭。贝鲁夫。弗雷泽特。 Egal, was Sie vorhaben, mit dem Golf Variant machen Sie immer eine sportliche Figur。 Entdecken Sie das Auto für einen aktiven Lebensstil。

此网址的错误是“意外的令牌 F”

我不能在这里发布网址,希望你能帮助我。

瓦尔哈

【问题讨论】:

  • 您是否可以访问服务器上的代码,如果是,请显示它是如何处理请求的?您在哪个控制台上看到错误,客户端还是服务器端?您的文本文件的编码是什么,您是否使用正确的编码读取它?显示 encodeURIComponent(content) 的结果。
  • @UlukBiy 我可以访问和读取 JSON 和图像,也可以是纯文本
  • 您是否尝试将 text/plain 添加到您的 $httpProvider.defaults.headers.common 中?
  • @Iborgav 怎么样?我没试过这个

标签: angularjs get


【解决方案1】:


您可以尝试在 $http 请求中设置一个神奇的“transformResponse”属性。
这是一个例子:

$http({
    method: 'POST',
    url: '/some/url',
    data: {},
    transformResponse: function (data, headersGetter, status) {
        //This was implemented since the REST service is returning a plain/text response
        //and angularJS $http module can't parse the response like that.
        return {data: data};
    }
}).success(function () {
    //Some success function
}).error(function () {
    //Some error function
});

当然,您可以随时根据需要修改响应。 :)

干杯!

【讨论】:

  • 这就是解决方案。应该被接受为答案
【解决方案2】:

问题在于您从服务器返回的 JSON 无效。我刚刚遇到了同样的问题。

查看 Angular 的源代码,我在 @module ng 中发现了一个 toJSONfromJSON 函数,它们试图 JSON.parse() 给定值(如果它是一个字符串),在你的情况下这似乎是真的。

在服务器端序列化数据应该很容易解决,所以Angular可以毫无问题地解析它。

祝你好运。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 2017-09-17
相关资源
最近更新 更多