【问题标题】:AngularJS - http POST request getting "SyntaxError: Unexpected token {" when sending JSONAngularJS - http POST请求在发送JSON时获得“SyntaxError:Unexpected token {”
【发布时间】:2013-07-31 01:40:52
【问题描述】:

已解决: 问题在于我的 php 脚本中的第二个回显。出于某种原因,它弄乱了我的东西。一旦我只留下第一个回声,一切似乎都很好。

我正在尝试使用 JSON 对象向 PHP 脚本创建一个简单的发布请求。出于某种原因,我收到“SyntaxError: Unexpected token {”但我检查了我的 JSON 并且它是有效的。我不确定这里发生了什么。我将不胜感激。

app.factory('HttpRequestFactory', function($http, $q) {
  var HttpRequestFactory = {
    async: function() {
      var deferred = $q.defer();
      var myData = {"param1":"value1","param2":"value2","param3":"value3"};
      var url = '/test.php';
      $http({
          url:url,
          data : myData,
          method : 'POST'
      })
         .success(function (data, status, headers, config) {
            deferred.resolve(data);
         })
         .error(function(data, status, headers, config){
            deferred.reject("An error occured");
         });
      return deferred.promise;
    }
  };
  return HttpRequestFactory;
});

这是我的 PHP 代码。事实证明,如果我评论 echo json_encode($_POST);错误消失了。

<?php
header('Content-Type: application/json');
    echo json_encode($_POST);
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
    echo json_encode($arr);
?>

【问题讨论】:

    标签: php http angularjs angularjs-factory


    【解决方案1】:

    您是否在发布请求中添加了标头?看到这个帖子:How can I post data as form data instead of a request payload?

    $http({
        method: 'POST',
        url: url,
        data: xsrf,
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    })
    

    【讨论】:

    • 是的,我将它作为全局标头添加到我的配置中
    猜你喜欢
    • 1970-01-01
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多