我尝试将angular2(离子应用)http请求发送到跨域域。请求如下所示。
dataload() {
// let headers = new Headers({ 'content-type': 'text/plain' });
// headers.append('Accept', 'text/plain');
let params: URLSearchParams = new URLSearchParams();
params.set('authToken', token );
params.set("username", "durga");
let options = new RequestOptions({
//headers: headers,
search: params
});
return new Promise(resolve =>
this.http
.get(dataurl, options)
.map(res => res.json())
.subscribe(data => {
this.data = data;
resolve(this.data);
// console.log(data);
});
});
}
我从另一个http请求获得的令牌/get-token
首先使用RequestMethod调用:OPTIONS,第二个请求为RequestMethod:GET并给出响应200 OK并返回该令牌。
我可以在控制台中看到如下错误
XMLHttpRequest无法加载 https://cmg-test.testsite.com/api/mobile/v1/data/Realtime/Global-Basic?authToken=4cxxxx08-xxxx-42e3-xxxx-9ae4xxxx96xx&username=durga。 预检的响应具有无效的HTTP状态代码403。
EXCEPTION:响应状态:URL为0:null
现在,问题是在获取该令牌之后我正在使用此令牌作为参数进行另一个请求,如上面的代码段中所述。它发送的是RequestMethod:OPTIONS而不是GET,我得到了响应
在dev-tools网络选项卡中,我可以看到无效的CORS请求作为响应。
无效的CORS请求和状态代码:403
您可能会说服务器的问题,您必须在服务器中进行配置。但事情是上面的工作正常和angularJS (我从angularJS迁移到angular2)
那我应该怎么解决这个问题呢?我检查并尝试了类似的问题和解决方案,但我没有得到任何东西。
请帮忙。
注意:我也在chrome中启用了CORS扩展。