【问题标题】:AngularJS: Why is $http response.data an object, when php returns a JSON string?AngularJS:当php返回JSON字符串时,为什么$http response.data是一个对象?
【发布时间】:2016-03-31 14:36:38
【问题描述】:

我有一个对 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);) 转换为对象。

【问题讨论】:

    标签: javascript php angularjs json ajax


    【解决方案1】:

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

    来自$http docs

    默认转换:

    ...

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

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

    (我强调最后一个项目符号)

    【讨论】:

      猜你喜欢
      • 2016-02-23
      • 2011-08-15
      • 2021-12-21
      • 1970-01-01
      • 2018-01-03
      • 2020-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多