Skype 用户名验证 - 没有访问控制允许来源 header 存在

Skype username validation - No Access control allow origin header is present

我正在关注另一个 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>"
  }
}

但是,当我在 angular js 服务中执行相同的操作时,出现以下错误。有人可以解释所涉及的幕后细微差别吗?我确定预检响应失败。我怎样才能让它通过?它如何与 chrome 中的 Postman 应用程序一起正常工作?我还在 angular

中对 http headers 进行了配置更改
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。对预检请求的响应未通过访问控制检查:请求的资源上不存在 'Access-Control-Allow-Origin' header。因此不允许访问来源'http://localhost'。

谁能帮我理解一下?此外,如果有人知道更好的选择,如果 Skype 名称使用 angular js 有效。请告诉我

您调用的服务似乎不接受跨域请求。这在 Postman 中不是问题,因为 Postman 获取您提供的信息,然后在服务器端构建和执行请求。

因为您使用的是 AngularJS 和 Spring。尝试在 Spring 中创建一个新的端点,该端点从 Angular 接收带有正文的请求:{data params : new_username='XXX'} 并将其从后端。