Android Ionic2 proxyUrl在设备上不工作
在设备上运行应用程序时,它不会获取api url 它不获取url 我使用了以下代码Android Ionic2 proxyUrl在设备上不工作,android,ios,ionic-framework,Android,Ios,Ionic Framework,在设备上运行应用程序时,它不会获取api url 它不获取url 我使用了以下代码 { "v2": true, "typescript": true, "proxies": [ { "path": "/api", "proxyUrl": 'api url here' } ] } 请给出任何建议代理服务用于在浏览器中进行测试,以避免在使用外部API时请求的资源上不存在“Access Control Allow Origin”标题。但这在设备
{
"v2": true,
"typescript": true,
"proxies": [
{
"path": "/api",
"proxyUrl": 'api url here'
}
]
}
请给出任何建议代理服务用于在浏览器中进行测试,以避免在使用外部API时请求的资源上不存在“Access Control Allow Origin”标题。但这在设备上不是问题,因此不需要此代理服务。因此,在设备上使用对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);
}
}
...
}
从'@angular/core'导入{Injectable};
从'@angular/Http'导入{Headers,Http};
从“离子角度”导入{Platform};
导入“rxjs/add/operator/toPromise”;
导入。。。
@可注射()
导出类访问服务{
私有头=新头({'Content-Type':'application/json'});
私有apiUrl='/v1/';
构造函数(私有http:http,
公共平台(公共平台){
如果(this.platform.is('cordova')){//,那么我如何在configAnywhere中设置api url呢?您想在组件、访问服务或常量中设置api url。我用一个更扩展的示例编辑了我的答案(也将其更改为Ionic 2)。希望这能给你一个更好的想法。我只是编了一个例子,没有经过测试。只是给你一个想法。更先进的方法是使用像gradle这样的自动化工具