AngularJS:当php返回一个JSON字符串时,为什么$ http response.data是一个对象?

时间:2016-03-31 14:36:39

标签: javascript php angularjs json ajax

我有一个对php的ajax调用。

角度很直接:

$http( { // ...            
       }
      )
  .then( function cf_handle_success( argo_response ) 
           { console.log( argo_response.data ) ; // --> [object Object]
           } ,
         // ...
       ) ;

php很直接:

$lvl = array( "prop_A" => "value_A" , ... ) ;
echo json_encode( $lvl  , JSON_FORCE_OBJECT ) ;

为什么不是argo_response.data一个JSON字符串?

确实,一旦客户端收到来自php的返回信息,我将需要通过(JSON.parse(my_jsonString);)将其转换为对象。

1 个答案:

答案 0 :(得分:3)

因为Angular会自动为你解析它,就像jQuery和其他一些lib一样。

来自$http docs

  

默认转换:

     

...

     

响应转换($httpProvider.defaults.transformResponse$http.defaults.transformResponse):

     
      
  • 如果检测到XSRF前缀,请将其删除(请参阅下面的“安全注意事项”部分)。
  •   
  • 如果检测到JSON响应,请使用JSON解析器对其进行反序列化。
  •   

(我强调最后一颗子弹)