angular js空错误响应

时间:2014-11-21 01:36:36

标签: angularjs rest

尝试从angular执行一些基本的REST服务,但我得到的只是一个空的错误响应。

我直接在我的电脑上打开index.html(不确定这是否是问题),然后点击“登录”#39;最终调用我的控制器:

$scope.doLogin = function()
  {
   var pr = $http.get('http://localHost:7777/BuilderDBSvc/login', {params: {user: $scope.userid, pass: $scope.password} })
     .success(function(data)
      {
       console.log(data);
       domains = data;
      })
      .error(function(data, status, headers, config)
      {
       console.log(data)
       console.log(status)
       console.log(headers)
       console.log(config)
      });
   pr.then(function(data)
     {
      $scope.user = data.data;
     });
  };

使用firefox进行调试,我将断点放在所有3个函数中:success errorthen。但只有'错误'被触发了。请求总是以红色显示,但有200个响应代码。响应数据显示大小为23个字节,但该值始终为空白。

但是,如果我直接在浏览器窗口中输入URL和参数,它可以正常工作,并显示预期的json字符串。

我以前使用过这种模式,但是nodejs和angularjs一起工作。但这次REST提供程序是一个非Java应用程序。我怀疑这是问题所在,但是当我直接在浏览器中输入REST URL时,它可以正常工作。

我在这里想念的是什么? 有没有更好的工具可以帮我调试?


注:
是的,这是一种非常不安全的身份验证方式,但它是我的出发点。

1 个答案:

答案 0 :(得分:0)

你的ploblem极有可能是从你的资源管理器中打开index.html,因为请求不会来自localhost,而且localhost服务器会阻止对Chrome控制台中的跨源请求请求你可能会看到一条消息说

  

XMLHttpRequest无法加载' http://localhost:7777'。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。来源'您的index.html位置'因此不允许访问。

以避免您应该从http://localhosthttp://localhost(同一服务器)发出请求,或者告诉您的服务器接受跨源请求