我在注册页面的发布方法中尝试了 APIURL...
import { Injectable } from '@angular/core';
import { Http, Headers, HttpModule } from '@angular/http';
import 'rxjs/add/operator/map';
let apiUrl = 'http://aaaaa.in/outfit/index.php/api/v1/';
@Injectable()
export class AuthServiceProvider {
constructor(public http: Http) {
console.log('Hello AuthServiceProvider Provider');
}
public register(data){
return new Promise((resolve, reject) => {
let headers = new Headers();
alert('11');
headers.append('Content-Type', 'application/json');
headers.append('Access-Control-Allow-Origin', '*');
headers.append( 'Access-Control-Allow-Headers', 'Authorization, Content-Type' );
//headers.append('Access-Control-Allow-Origin',
'http://localhost:8100');
//headers.append('Access-Control-Allow-Credentials', 'true');
alert(apiUrl);
this.http.post(apiUrl+'account', JSON.stringify(data), {headers: headers})
.subscribe(res => {
resolve(res.json());
alert(Response);
}, (err) => {
reject(err);
});
});
}
}
它显示如下错误..."CORS 策略已阻止从源 'http://localhost:8100' 访问位于 'http://aaaaa.in/outfit/index.php/api/v1/account' 处的 XMLHttpRequest :对预检请求的响应未通过访问控制检查:它没有 HTTP 正常状态。
提前谢谢..
您是否正在尝试在 chrome 上运行该应用程序?如果您在chrome上运行该应用程序,通常会发生这种情况,我什至不知道为什么,但是如果您在实际设备上尝试,它可以正常工作。我遇到了同样的问题,我在允许控制允许原产地的chrome扩展的帮助下克服了它。我不知道是否有适当的方法来解决这个问题,但这可能会对您😊有所帮助
方法 1:在 chrome 中安装"允许-控制-允许-原产地"扩展程序,以解决此问题以进行开发。
方法2:您需要更改ionic.config.json中的一些行
{
"name": "foresight",
"app_id": "47182aef",
"type": "angular",
"integrations": {
"cordova": {}
},
"proxies": [
{
"path":"/account",
"proxyUrl": "https://api-foresight.castingapi.in/account"
}
]
}
您可以使用以下代码调用外部服务
headers = new Headers({'key': '12345678'});
options = new RequestOptions ({headers: this.headers});
return this.http.get('/account/?fields=name', this.options)
请记住在ionic.config中进行更改后进行ionic服务或ion实验室.js