我是Angular的新手,甚至更新的使用$ http。我无法得到的是以下_
这是我到目前为止所得到的:
$ http电话:
var deferred = $q.defer();
var parametres = $.param({ nomWS: ws, servidor: ip, query: param, idCamping: dadesCamping[0], forceRenew: renew});
var url = './api/functions.php?function=callWS_JSON';
$http({
method: 'POST',
url: url,
data: parametres,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(data) {
console.log('success');
deferred.resolve(data);
});
接听电话的php是使用通过$ _POST []发送的参数检索内容并使用以下内容获取json:
$fileContents = file_get_contents($url);
echo $fileContents;
如果我在PHP脚本中手动设置参数,它会输出一个有效的JSON字符串,但当我回显它以便在我的javascript(angular)代码中检索它时,我在Chrome控制台中收到以下错误:
SyntaxError: Unexpected token &
at Object.parse (native)
at Vb (http://domain/lib/angular/angular.js:14:208)
at e.defaults.transformResponse (http://domain/lib/angular/angular.js:64:454)
at http://domain/lib/angular/angular.js:64:215
at Array.forEach (native)
at r (http://domain/lib/angular/angular.js:7:280)
at pc (http://domain/lib/angular/angular.js:64:197)
at c (http://domain/lib/angular/angular.js:65:400)
at C (http://domain/lib/angular/angular.js:94:187)
at http://domain/lib/angular/angular.js:95:350
如果我在内容的回声之前回应了一些内容我没有收到错误,控制台会输出以下信息:
test
{"clientesPresentes": {"cliente":...
(剪切输出,但想法很清楚)
我认为SyntaxError: Unexpected token &
是因为输出。我非常确定问题是关于标头和内容类型。试图找到执行后调用的参数并获取json内容作为答案,但我没有设法找出答案。所以任何帮助都会非常准确。
提前致谢
PD:尝试在我的php文件中设置header('Content-type: application/json');
,但我得到了相同的SyntaxError: Unexpected token &
错误
提前致谢!
答案 0 :(得分:0)
哪里来了参数?
我用这种方式。
var $scope.someData = {
'param1': 12,
'param2': 33
};
//someData var can also be set inside a form
<input type="text" ng-model="somedata.param1" >
//post and get available
$http.post('url.php' , $scope.someData)
.success(function(res){
;
})
.error(function(error){
;
});
并在php文件中以这种方式获取变量
$data = file_get_contents("php://input");
echo $data->param1;
答案 1 :(得分:0)
您可能在JSON文件中有非转义字符串。