Angularjs 角度js空错误响应
尝试从angular执行一些基本的REST服务,但我得到的只是一个空的错误响应 我直接在电脑上打开index.html,不确定这是否是问题所在,然后单击“登录”,最终调用我的控制器:Angularjs 角度js空错误响应,angularjs,rest,Angularjs,Rest,尝试从angular执行一些基本的REST服务,但我得到的只是一个空的错误响应 我直接在电脑上打开index.html,不确定这是否是问题所在,然后单击“登录”,最终调用我的控制器: $scope.doLogin = function() { var pr = $http.get('http://localHost:7777/BuilderDBSvc/login', {params: {user: $scope.userid, pass: $scope.password} })
$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 error和then。但只会触发“错误”。请求总是以红色显示,但响应代码为200。响应数据显示的大小为23字节,但该值始终为空
但是,如果我直接在浏览器窗口中键入URL和参数,它工作正常,并显示预期的json字符串
我以前使用过这种模式,但是nodejs和angularjs一起工作。但这次REST提供者是一个非java应用程序。我怀疑这就是问题所在,但当我直接在浏览器中输入RESTURL时,它工作正常
我错过了什么?
有没有更好的工具可以帮我调试?
注:
是的,这是一种非常不安全的身份验证方法,但这是我的出发点。很可能是您的问题是从浏览器中打开index.html,因为请求不会来自localhost,并且localhost服务器会在chrome控制台中阻止跨源请求。您可能会看到这样一条消息 XMLHttpRequest无法加载'http://localhost:7777'. 请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“your index.html location”
为了避免您应该向http://localhost 到http://localhost 相同的服务器或告诉您的服务器接受跨源请求我尝试在Web服务器上使用默认的python Web服务器,并使用更新版本的firefox。问题确实在于跨站点脚本。因为我可以控制端口7777上的服务器,所以我可以添加适当的头以允许CORS。但是谷歌搜索提供了很多相互矛盾的信息。。。我需要添加哪些标题?您到底想要实现什么?您会遇到什么错误?顺便问一下,您是否在请求中添加了设置为true的“withCredectials”选项???为了帮助你们理解旅游问题,我认为这对解决你们的问题很有用