【问题标题】:SyntaxError: Unexpected token F, when using $http.post and restangular postSyntaxError: Unexpected token F, when using $http.post and restangular post
【发布时间】:2016-02-04 12:50:09
【问题描述】:

我们在当前项目中使用 angular,并且正在使用 Restangular 进行 API 调用。突然,我在向某个端点发帖时开始出错。

帖子是这样的:

Restangular.one('aaa').post('bbb', data)
  .then((response) => {
    console.log(response);
  }, (err) => {
    console.log(err);
  });

日志是这样的:

SyntaxError: Unexpected token F

一段时间后我放弃并尝试使用 angular $http 服务。

$http({
  method: 'POST',
  url: '/aaa/bbb',
  data: data
}).then(function successCallback(response) {
  console.log(response);
  }, function errorCallback(response) {
    console.log(response);
  });

还有日志:

SyntaxError: Unexpected token F

在那之后我开始变得绝望并用 jQuery.ajax 发了一个帖子

jQuery.ajax({
  url:'/aaa/bbb',
  type: 'POST',
  data: data,
  contentType: 'application/json; charset=utf-8',
  success: function(s) {
    console.log(s);
    console.log('jquery success');
  },
  error: function(e) {
    console.log(e);
    console.log('jquery error');
  },
  complete: function(c) {
    console.log(c);
    console.log('jquery complete');
  }
});

以及使用jquery.ajax时的日志:

Object {readyState: 4, responseText: "Fatal error: actual error message here", status: 200, statusText: "OK"}
jquery error

终于有东西了!我们使用 drupal 作为后端,其中一个模块未启用。 我只是想知道为什么 restangular 和 $http 没有给出正确的错误信息。

【问题讨论】:

    标签: javascript jquery angularjs drupal restangular


    【解决方案1】:

    Restangular 和$http 模块产生的响应与从JSON 模块接收的响应相同。例如:

    JSON.parse("{F}");
    

    产生错误:

    Uncaught SyntaxError: Unexpected token F

    jQuery 的响应是来自服务器的原始响应数据,没有应用JSON.parse。

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 2015-10-13
      • 1970-01-01
      • 2017-06-07
      • 2019-08-14
      • 1970-01-01
      • 1970-01-01
      • 2017-05-22
      • 2013-02-25
      相关资源
      最近更新 更多