返回和注册 returns XMLHttpRequest 无法加载 https://api.backand.com/user/signup

Backand signup returns XMLHttpRequest cannot load https://api.backand.com/user/signup

Backand return 当我 运行 注册方法时出现此错误...

这是注册方法...

function signUp(firstName, lastName, email, password) {
    var canceller = $q.defer();
    var cancel = function(reason) {
      canceller.resolve(reason);
    };
    var promise = $http({
      method: 'POST',
      url: CONSTS.backandUrl + '/user/signup',
      data: {
        firstName: firstName,
        lastName: lastName,
        email: email,
        password: password
      },
      timeout: canceller.promise,
      ignoreLoadingBar: true
    });
    return {
      promise: promise,
      cancel: cancel
    };
  }

我已经根据文档设置了注册甚至匿名令牌。

function(BackandProvider, CONSTS) {
    BackandProvider.setAnonymousToken(CONSTS.anonymousToken);
    BackandProvider.setSignUpToken(CONSTS.signUpToken);
    BackandProvider.setAppName(CONSTS.appName);
}

我错过了什么吗?希望在正确的方向上指出一点。

这是通过 java 脚本调用 ajax 的常见问题。发生这种情况是因为不允许通过 javascript ajax 调用进行跨域请求。在您的情况下,您正在执行从域本地主机到 api.backend.com 的请求。浏览器检查您请求的服务器是否在响应 header 中设置了 header Access-Control-Allow- Origin。如果不存在,或者 header 的值不在列表中包含您的域,则浏览器会阻止该请求。

要克服这个问题有两种方法

  1. Access-Control-Allow-Origin 应在您的后端 API 端设置响应 header 以允许您的域向 API 发出请求。 Example(此示例适用于服务器端的 java 组件。类似地,它也适用于其他服务器端语言)

或者

  1. 要绕过这个你必须使用JSONP