繁体   English   中英

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

[英]AngularJS: Why is $http response.data an object, when php returns a JSON string?

我有一个ajax电话到PHP。

角度直截了当:

$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);)将其转换为对象。

因为Angular会自动为您解析它,就像jQuery和其他几个库一样。

$http docs中

默认转换:

...

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

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

(我对最后一个子弹的强调)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM