首先,cors已启用并在webapi中工作,我可以通过从另一个控制器没有问题,每当禁用Cors我不能再发布/从服务器获取数据。对于令牌也是如此,只要我禁用webapi上的cors,我就没有得到有效的响应。但是现在我确实得到了有效的答复。状态200 OK(),角度承诺抛出错误 - 没有'访问控制 - 允许 - 起源'
我想从Web API获取令牌。我使用角度资源和承诺。在提琴手,我可以看到状态200,所以我得到一个令牌回来,JSON说不记名= X,所以一切都很好。邮差也在工作。但是,当我看着调试控制台,我看到这个承诺是抛出一个错误,即使寿提琴手和邮递员都告诉我一个有效的JSON文件和一个状态200
// Controller
.controller('LoginCtrl', ['$scope', 'Token', function ($scope, Token) {
$scope.login = function() {Token.save('[email protected]&password=Test123!!&grant_type=password')
.$promise.then(function (response) {
console.log(response);
});
};
}]);
在我厂
.factory('Token', ['$resource', function ($resource) {
return $resource(baseUrl + 'token', null, {
save: {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': '*/*'
},
}
});
}]);
我的开发人员工具控制台得到的回应是
可能未处理的拒绝:{ “数据”:NULL, “状态”: - 1, “配置”:{ “方法”: “POST”,” transformRequest “:[空],” transformResponse “:[空],” jsonpCallbackParam “:” 回调 “ ”报头“:{” 内容泰pe“:”application/x-www-form-urlencoded“,”Accept“:”/“},”data“:”[email protected] & password = Test123 !! & grant_type =密码 “ ”URL“:” http://localhost:55126/token “},” 状态文本 “:”“}
我100%肯定我是从/令牌调用得到一个有效的JSON对象在此先感谢。
更新
的XMLHttpRequest不能加载本地主机:55126 /令牌否“访问控制允许来源”标题存在于所请求的资源来源。“本地主机:9000”;为因此不允许访问。angular.js:14642 -
可能未处理的排斥反应:{ “数据”:NULL, “状态”: - 1, “配置”:{ “方法”: “POST”, “transfor mRequest”:[空], “TR ansformResponse”:[NU 11], “jsonpCallbackPa RAM”: “回调”, “HEA德尔斯”:{ “内容类型 ”:“ 应用程序/ x-WWW - 形式进行了urlencoded”,”一个ccept“:”/“},”data“:”username = test123 @ tes t.com & password = Test1 23 !! & grant_type =通字”, “URL”: “localho ST:55126 /令牌”;} “状态文本”: “”}
这些2条误差线弹出刚过彼此
-1的状态通常表示[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS)问题。浏览器已经阻止了XHR,因为它违反了[同源策略](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy)。 – georgeawg
如果这是一个CORS问题,我应该无法获取数据。我确实得到了服务器的(良好)响应,但承诺并不等待答案的完成。我也在Origin *的后端使用CORS,所以应该没问题。 –
OPTIONS飞行前请求的200响应?可能实际的POST在此之后被阻止?开发者控制台的网络标签显示什么? – georgeawg