无法从AngularJS中的asmx Web服务获取JSON

时间:2015-12-09 09:06:12

标签: angularjs json web-services

我无法从asmx webservice解析json文件。

这是我的WebMethod:

[WebMethod]
    [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
    public void GetDataJSON()
    {
        //var dt = GetCubeResult("");

        var _DbConn = Helper.GetDBConnection();
        var _CubeConn = Helper.GetCubeConnection();
        var _query = Helper.GetWebConfig("dashboard_config");                     

        Data[] datArray = new Data[1];

        Data data = GetTilesAsDataArray(_query, _DbConn);

        datArray[0] = data;

        System.Web.Script.Serialization.JavaScriptSerializer serializer =
              new System.Web.Script.Serialization.JavaScriptSerializer();           

        Context.Response.Clear();
        Context.Response.ContentType = "application/json";
        /*
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type,Accept,Origin,X-Requested-With");
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS");
        */
        Context.Response.Write(serializer.Serialize(datArray));
    }

这是我的AngularJS代码

app.controller('jsonServerBox', ['$scope', '$http', function($scope, $http) {

$http({
      method: 'POST',
      crossDomain: true,
      contentType: "application/json; charset=utf-8",
      url: 'myasmx.asmx/getjson',
      data: '[]',
      dataType: 'json',
      xhrFields: {
           withCredentials: true
      },
      cache: 'false',
      headers: {
                  'Accept': 'application/json, text/javascript, */*; q=0.01',
                  'Content-Type': 'application/json; charset=utf-8'
                  }
      //url: 'serverbox.json'


      }).success(function (data) {

          //var myjson = JSON.parse(data);
          //$scope.ocw = myjson;              
          //$scope.ocw = JSON.parse(data);
          $scope.ocw = data;
          $scope.loading = false;

      })

        .error(function(data, status) {

          console.error('Repos error', status, data);
          //alert("schlecht");
        });}]);

我已经尝试使用解析和其他方法,但没有人工作 - 我的网络服务中是否有任何错误?使用本地json文件,角度代码正在工作。

编辑:现在正在运作。我将角度代码更改为以下内容:

app.controller('jsonServerBox', ['$scope', '$http', function($scope, $http) {
$http.get("myasmx.asmx/get", 

  {
    params: {
        format: "json",
        cache: "false"
    }

  })
  .success(function(data){
      $scope.ocw = data;
      console.log($scope.ocw);

});}]);

但有时浏览器显示它,有时不显示 - 为什么?在IE10中,它不起作用 - 在10中没有支持?

0 个答案:

没有答案