我正在关注另一个SO question来执行Skype用户名验证。当我执行HTTP POST
时POST https://login.skype.com/json/validator
数据参数:new_username =' XXX'
使用Postman
Chrome插件,我收到以下有效回复。所以,我认为允许执行此API方法
{
"status": 406,
"status_text": "valid",
"data": {
"markup": "Skype Name not available",
"alternatives": true,
"fieldDetails": "<label>Suggestions</label><ul><li><label><input class=\"skypeNameSuggestion\" type=\"radio\" name=\"selectSkypeName\" value=\"keerthivasan.ramanathan1\"/>keerthivasan.ramanathan1</label></li></ul>"
}
}
但是,当我在角度js服务中执行相同的操作时,我得到以下错误。有人可以解释所涉及的幕后细微差别吗?我确定预检反应失败了。我怎么能通过?如何在Chrome中使用Postman应用程序正常工作?我还对angular
中的http标头进行了配置更改app.config(['$stateProvider', '$urlRouterProvider','$httpProvider',
function($stateProvider, $urlRouterProvider, $httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
错误 XMLHttpRequest无法加载https://login.skype.com/json/validator。对预检请求的响应没有通过访问控制检查:否&#39;访问控制 - 允许 - 来源&#39;标头出现在请求的资源上。起源&#39; http://localhost&#39;因此不允许访问。
有人可以帮助我理解吗?此外,如果有人知道更好的查找选项,如果skype名称使用角度js有效。请让我知道
答案 0 :(得分:0)
您调用的服务似乎不接受跨域请求。这在Postman中不是问题,因为Postman会获取您提供的信息,然后在服务器端构建和执行请求。
因为您正在使用AngularJS和Spring。尝试在Spring中创建一个新端点,该端点从Angular接收来自body的请求:{data params:new_username =&#39; XXX&#39;}以及从后端发送到https://login.skype.com/json/validator的POST。