角js空错误响应
问题描述:
试图从角度做一些基本的REST服务,但我所得到的只是一个空的错误响应。角js空错误响应
我直接打开index.html我的电脑上(不知道这是问题),然后单击“登录”最终调用我的控制器:
$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应用程序。我怀疑是这个问题,但是当我直接在浏览器中输入REST url时,它工作正常。
我在这里错过了什么?
有没有更好的工具可以用来帮助调试呢?
注:
是的,这是一个非常不安全的方式做认证,但我的出发点。
答
由于请求不会来自本地主机,因此本地主机服务器将阻止请求在Chrome控制台中阻止交叉来源请求,您很可能会看到消息说
XMLHttpRequest无法加载'
http://localhost:7777
'。请求的资源上没有“Access-Control-Allow-Origin”标题。因此,'你的index.html位置'不允许访问。
避免你应该要求从http://localhost
到http://localhost
(同一台服务器)或者告诉你的服务器接受跨起源请求
好,我尝试使用一个Web服务器(默认的Python的Web服务器)的东西,并使用Firefox的更新版本。这个问题的确与跨站点脚本有关。由于我可以控制端口7777上的服务器,因此我可以添加适当的标题以允许CORS。但谷歌搜索给出了很多冲突的信息...我需要添加什么标题(S)? – Jon 2014-11-26 19:15:55
你究竟想要达到什么目的?和你得到什么错误? – Strife86 2014-11-27 14:45:04
顺便说一下你是否在你的请求中加入'withCredectials'选项设置为true?帮助您了解旅游问题,我认为这对您的问题有用http://www.html5rocks.com/en/tutorials/cors/ – Strife86 2014-11-27 14:49:24