2014-04-22 34 views
0

我单独测试我的PHP错误,它给了我这样的结果

{"tabId":1,"tabName":"Main","uId":"1"}{"tabId":2,"tabName":"Photography","uId":"1"} 

但我angularjs不能接收回调,它angularjs

userId = '1'; 

$http({ 
    url: "php/loadTab.php", 
    method: "GET", 
    params: {'userId':userId} 
    }).success(function(data, status, headers, config) { 
     console.log(data); 
    }).error(function(data, status, headers, config) { 
    }); 
某处返回一个错误

奇怪的事情我重复使用确切的ajax代码,它以前工作。对此有何想法?

错误:语法错误:意外标记{ 在Object.parse(原生)

更奇怪的事情:我特意添加另一个附和我的PHP和它能够安慰值。什么?!

+0

此代码本身似乎是正确的所以它可能是您的网络服务的问题。 – tommybananas

+0

它返回的错误是什么? – adrichman

+0

@adrichman SyntaxError:意外的令牌{Object.parse(原生的) – user3522457

回答

1

来自服务器的数据不是有效的JSON。

$httpProvider.defaults.transformResponse将尝试解析JSON,如果数据看起来像JSON。

https://docs.angularjs.org/api/ng/service/ $ HTTP

为了解决这个问题,你可以让父对象的数组,这样

[{"tabId":1,"tabName":"Main","uId":"1"},{"tabId":2,"tabName":"Photography","uId":"1"}] 
+0

好的发现!我不希望它是JSON,我希望它是普通的js对象,怎么样? – user3522457

+0

JSON = JS对象,这里的问题是多个JS对象应该位于数组括号'[]'内。我不建议重新配置angular的'$ http'分析器,而是建议使用PHP的'json_encode' –