Angular 2 无法在 XMLHttpRequest : Invalid URL 上执行打开

标签 angular typescript xmlhttprequest jwt

我正在尝试调用一个服务,它在 DHC 中工作,但是当我尝试调用我的 angular 2 项目时,它崩溃了,方法请求是 POST,从有电子邮件和密码的 body 接收一个对象,响应是一个 token ,我将在整个项目中使用它进行授权。

这是我的代码。

import { Injectable } from '@angular/core';
import { Http, Response, Headers, Request ,RequestOptions ,RequestMethod } from '@angular/http';
import {Observable} from 'rxjs/Rx';
import 'rxjs/add/operator/map';

@Injectable()
export class LoginService {
      constructor(private http:Http) { 
      }

  getToken(){
    var baseUrl = "xxx.xxx.x.xxx:xxxx/project/v1/admin/login";
    var headers = new Headers();
    headers.append("Content-Type", 'application/json');
    var options = new RequestOptions({ headers: headers });
    var objeto = {'email': 'xxxxxx', 'pass':'xxxx' } 
    var body2 = JSON.stringify(objeto);
    var xhr = new XMLHttpRequest();
    return this.http
       .post(baseUrl, body2, options)
       .map((response: Response) => response.json())
       .subscribe(
           data => console.log('Success uploading the opinion '+ data, data),
           error => console.error(`Error: ${error}`)
       );
  }
}

我尝试从 Angular 2 实现 XMLHttp Request 调用,但错误是一样的,我不知道我是否可以在 Angular 2 中使用它,这是方法

return Observable.fromPromise(new Promise((resolve, reject) => {
  //  let formData: any = new FormData();     
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4) {
            if (xhr.status === 200) {
                resolve(JSON.parse(xhr.response));
            } else {
                reject(xhr.response);
            }
        }
    }
    xhr.open("POST", baseUrl, true);
    xhr.send(body2);
}));

帮忙:(谢谢

最佳答案

如果是 192.168.. 类型的 url,你应该在它前面添加一个 http://https:// .您可能需要在服务器端启用 CORS 选项。

关于Angular 2 无法在 XMLHttpRequest : Invalid URL 上执行打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42461174/

相关文章:

node.js - 有人创建过在 IISNode 下运行的 Node.js、Angular2 应用程序吗?

javascript - 在 keydown 上,为什么值的 console.log 与将值分配给对象不同?

php - Angular 应用程序不调用 php

angular - 从组件中的 Assets 目录导入静态 JSON 文件(Angular)

typescript - RxJS 可观察 : Emit every specific change in the array

http - 请求的资源 : Meteor server-side 上没有 'Access-Control-Allow-Origin' header

typescript - 无法通过 Angular2-RC4 中的 View Child 访问导入的组件

javascript - Typescript X 不是一个函数

javascript - 将 XHR 请求存储到 JavaScript 变量中

JavaScript - XMLHttpRequest、访问控制允许来源错误