【发布时间】:2017-07-16 14:46:35
【问题描述】:
我正在尝试调用服务,它在 DHC 中有效,但是当我尝试调用我的 angular 2 项目时,它崩溃了,方法请求是 POST,从具有电子邮件和密码的主体接收对象,并且响应是一个令牌,我将在整个项目中使用它来进行授权。
这是我的代码。
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 typescript xmlhttprequest jwt