Angularjs $http.get错误,意外标记
我刚刚开始使用以下代码测试一个简单的API:Angularjs $http.get错误,意外标记,angularjs,json,node.js,http,angular-http,Angularjs,Json,Node.js,Http,Angular Http,我刚刚开始使用以下代码测试一个简单的API: $http.get('/api/products?limit=10').then(function (response) { console.log(response.status); }); 我得到了这个错误: SyntaxError:意外标记{ at Object.parse(本机) 在fromJson()处 在defaultHttpResponseTransform()处 在 在forEach() 在transformData()处
$http.get('/api/products?limit=10').then(function (response) {
console.log(response.status);
});
我得到了这个错误:
SyntaxError:意外标记{
at Object.parse(本机)
在fromJson()处
在defaultHttpResponseTransform()处
在
在forEach()
在transformData()处
在转换响应时()
在processQueue()处
在
在范围内。$eval()
顺便说一句,使用这个非角度代码,它可以很好地工作:
function httpGetAsync(theUrl, callback) {
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
callback(xmlHttp.responseText);
}
xmlHttp.open("GET", theUrl, true); // true for asynchronous
xmlHttp.send(null);
}
httpGetAsync('/api/products?limit=10', function(response) {
console.log(response);
});
API的一些代码:
res.writeHead(200, {
'Content-Type': 'application/x-json-stream'
});
// random delay
setTimeout(function () {
var i;
for (i=0; i<limit; i+=1) {
res.write(JSON.stringify(createRandomItem(i+skip, sort)) + '\n');
}
res.end();
}, 100 + Math.floor(Math.random() * 3000));
res.writeHead(200{
“内容类型”:“应用程序/x-json-stream”
});
//随机延迟
setTimeout(函数(){
var i;
对于(i=0;i我在客户机中解决了它,如下所示:
var WareHouseResource = $resource('/api/products?limit=10', {}, {
query: {
method: 'GET',
isArray: true,
transformResponse: function(data) {
data = ('[' + data + ']').replace(/}/g, '},').replace(',\n]', ']');
return angular.fromJson(data);
}
}
});
我在客户端解决了它,如下所示:
var WareHouseResource = $resource('/api/products?limit=10', {}, {
query: {
method: 'GET',
isArray: true,
transformResponse: function(data) {
data = ('[' + data + ']').replace(/}/g, '},').replace(',\n]', ']');
return angular.fromJson(data);
}
}
});
错误是说,当接收到响应.data
并通过fromJson()
传递时,响应.data
存在无效的{
,这使得数据
不是有效的Json对象。您能记录响应
并验证您传递的是有效的Json吗?我添加了res.write(“{”);和res.write(“}”);在for循环前后的api中,它工作了,但为什么它使用xmlHttpRequest而不是angular$http?太奇怪了……非angular可能工作了,因为您没有解析响应,所以它不关心是否返回了有效的json。$http
处理解析,解析That抛出错误。采取什么措施在非角度控制台中返回,并将其粘贴到json验证器中…最有可能的错误是,当接收并通过json()的响应.data
时,响应.data
具有无效的{
存在,使得数据
不是有效的Json对象。您可以记录响应
并验证您传递的是有效的Json吗?我添加了res.write({');和res.write(}'));在for循环前后的api中,它工作了,但为什么它使用xmlHttpRequest而不是angular$http?太奇怪了……非angular可能工作了,因为您没有解析响应,所以它不关心是否返回了有效的json。$http
处理解析,解析That抛出错误。采取什么措施在非角度控制台中返回,并将其粘贴到json验证程序中…很可能失败