【问题标题】:AngularJS SyntaxError: Unexpected token sAngularJS SyntaxError: Unexpected token s
【发布时间】:2015-05-01 16:04:57
【问题描述】:

我有一个叫做登录的函数,当用户按下按钮时,下面的代码将被执行。

所以我尝试查看用户是否存在并在 JSON 对象中获取他的数据,但这不起作用,我收到以下消息:

  SyntaxError: Unexpected token s
    at Object.parse (native)

URL 与我想要的完全一样。

$scope.login = function() {
    var request = $http({
        method : "GET",
        url : "/REST/user" + "/" + $scope.email + "/" + "password" + "/" + $scope.password,
        headers : {
            'Content-Type' : "application/json"
        }
        });

    request.success(function(response) {
        location.href = "../views/test.html"
    });
    request.error(function(response) {
        growl.addErrorMessage("doesn't work", {
            ttl : 4000
        });
    });
}

浏览器输出

{
"id": "9be1804a-e366-11e4-9d4b-82ea0d805d53",
"email": "test@gmx.com",
"facebook_id": null,
"firstname": "test",
"lastname": "blabla",
"password": null,
"gender": null,
"is_active": "0",
"birthday": null
}

【问题讨论】:

  • 如果您从浏览器访问它,您可能希望包含 REST url 的输出
  • 你可以使用 $http.get("/REST/user" + "/" + $scope.email + "/" + "password" + "/" + $scope.password)语法来简化您的请求。
  • 嘿,杰克,我已经试过了,但同样的信息。
  • 你试过不带标题吗?
  • 可以但是效果是一样的

标签: json angularjs rest http


【解决方案1】:

此错误是由于JSON.parse 在遇到具有不以引号" 开头的键的对象时抛出错误。

例如:

{ abc: 123 }

会抛出“Unexpected token a”。

默认情况下,$http 将响应以 "Content-Type": "application/json" 或以 {[ 开头的任何数据视为 JSON,并调用 JSON.parse

查看开发者控制台“网络”选项卡中的响应,看看是什么触发了它。

【讨论】:

  • 当我调用的 api 抛出错误消息时,我也发生了同样的事情,http 期望返回一个有效的 json。
猜你喜欢
  • 1970-01-01
  • 2016-01-31
  • 2017-10-11
  • 1970-01-01
  • 1970-01-01
  • 2019-01-06
  • 2017-12-09
  • 1970-01-01
  • 2017-06-22
相关资源
最近更新 更多