具有单值和AngularJs $ http json处理的WebApi方法

Dal*_*rzo 6 javascript json asp.net-web-api angularjs

我遇到了一个问题而且我没有想法,我需要一些关于原点和/或解决方案的指导:

服务器端

我添加了标准的Microsoft Web Api Controller类" ValuesController",如下所示:

public class ValuesController : ApiController
{              
   public string Get(int id){ return "value"; }
   ...
Run Code Online (Sandbox Code Playgroud)

客户端

在我的AngularJS Controller函数中,我有一个简单的get

$http({method:'GET',url: '/api/values/1'}).success(function(data){
        $scope.value  =data;
    })
Run Code Online (Sandbox Code Playgroud)

HTML看起来像这样:

  <input type="text" ng-model="value" />
Run Code Online (Sandbox Code Playgroud)

奇怪的是(问题)是我得到:输入中的"值"而不是值(没有引号).为了避免误解,我得到了这个:

在此输入图像描述

而不是这个:

在此输入图像描述

当然问题是:为什么?以及如何修复*?

*希望答案不会返回一个对象而不是一个简单的字符串:)

Edw*_*rzo 5

我的印象是,这是由于JSON格式的安全漏洞造成的.在$ http服务的文档中,有一个名为JSON Vulnerability Protection的部分,建议Angular采取一些预防措施来避免攻击.

他们建议阅读以下文章:解析一个微妙的JSON漏洞,据我所知,深入研究一个类似于你的案例.

最重要的是,我认为你必须返回一个完整的JSON对象,而不仅仅是一个字符串.另一种方法是通过执行来确保您获得JSON对象

$scope.value = JSON.parse(value)
Run Code Online (Sandbox Code Playgroud)