在设备上运行应用程序时,无法获取api网址
它不获取URL
我使用了以下编码
{
"v2": true,
"typescript": true,
"proxies": [
{
"path": "/api",
"proxyUrl": 'api url here'
}
]
}
请提出任何建议
最佳答案
代理服务旨在在浏览器中进行测试,以避免在使用外部API时出现No 'Access-Control-Allow-Origin' header is present on the requested resource
错误。但这在设备上不是问题,因此不需要此代理服务。因此,在设备上使用对API url的直接调用而不是对http://localhost:8100
的调用。
如果要在设备和浏览器上进行测试,只需检查Cordova是否可用(因此您在设备上),然后定义要使用的URL。像这样:
import {Injectable} from '@angular/core';
import {Headers, Http} from '@angular/http';
import {Platform} from 'ionic-angular';
import 'rxjs/add/operator/toPromise';
import ...
@Injectable()
export class AccessService {
private headers = new Headers({'Content-Type': 'application/json'});
private apiUrl = '/v1/';
constructor(private http: Http,
public platform: Platform) {
if (this.platform.is('cordova')) { // <<< is Cordova available?
this.apiUrl = 'https://api.instagram.com/v1/';
}
}
login(username: string, password: string): Promise<string> {
let postParams = {
username: username,
password: password
};
return this.http
.post(this.apiUrl + 'login', postParams, this.headers)
.toPromise()
.then(response => response.json().devicetoken as string)
.catch(this.handleError);
}
}
...
}
关于android - Ionic2 proxyUrl在设备上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42390085/