ionic serve 명령을 실행하는 동안 오류가 발생했습니다. post 메서드를 사용하여 api를 호출하려고합니다.ionic 2 REST API : URL로드 실패
Failed to load http://abc.localhost/api/auth/login : Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost:8101 ' is therefore not allowed access.
가 어떻게이를 극복 할 수
나는 오류가있어? 에게 나는 다음 행동 API 모듈에서 YII2 프레임 워크의 API를의를 작성한:
public function behaviors() {
$behaviors = parent::behaviors();
$behaviors['contentNegotiator'] = [
'class' => 'yii\filters\ContentNegotiator',
'formats' => [
'text/html' => Response::FORMAT_JSON,
'application/json' => Response::FORMAT_JSON,
'application/xml' => Response::FORMAT_XML,
],
];
$behaviors['corsFilter'] = [
'class' => \yii\filters\Cors::className(),
'cors' => [
'Origin' => ['*'],
'Access-Control-Request-Method' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],
'Access-Control-Request-Headers' => ['*'],
'Access-Control-Allow-Credentials' => true,
'Access-Control-Max-Age' => 86400,
'Access-Control-Allow-Origin' => ['*', 'http://abc.localhost/*', 'http://localhost:8101/*']
],
];
return $behaviors; }
그리고 내 ionic2 코르도바 API 호출 스크립트가 : 심지어
loading.present();
console.log(this.singleton.apiGuestToken);
let headers = new Headers();
headers.append("Accept", 'application/json');
headers.append('Content-Type', 'application/json');
headers.append('Authorization', this.singleton.apiGuestToken);
headers.append('withCredentials', 'true');
headers.append('Access-Control-Allow-Origin', 'http://abc.localhost');
let options = new RequestOptions({ headers: headers });
console.log(options);
let paramsData = { 'userType': userType, 'email': this.email, 'password': this.password };
console.log(paramsData);
this.http.post('http://abc.localhost/api/auth/login', paramsData, options)
.map(res => res.json()) //this.singleton.apiUrl +
.subscribe(data => {
let resultData = JSON.parse(data['_body']);
console.log(resultData);
}, error => {
console.log(error);// Error getting the data
loading.dismiss();
});
, 나는 볼 수 없습니다 사후 매개 변수 및 인증을 제공합니다. 미리 감사드립니다.
토미 슬라브에 감사드립니다! 나는'ionic cordova run -l' 명령을 실행하여 장치에서 응용 프로그램을 실행하려고했습니다. 그것은 나를 보여줍니다 ** http : //abc.localhost/api/auth/login을로드하지 못했습니다 : 프리 플라이트 요청에 대한 응답이 액세스 제어 검사를 통과하지 못했습니다 : 요청한 페이지에 'Access-Control-Allow-Origin'헤더가 없습니다 의지. 따라서 'http : // localhost : 8100'은 액세스가 허용되지 않습니다. ** –