2017-02-04 3 views
0

Ionic을 처음 사용했습니다. 심지어 같은 소스에서,이온 2 : 앱 내부에 외부 콘텐츠로드

import { Component } from '@angular/core'; 
import { Http } from '@angular/http'; 

import { NavController } from 'ionic-angular'; 

@Component({ 
selector: 'page-about', 
templateUrl: 'about.html' 
}) 
export class AboutPage { 
    mypage: any; 

    constructor(public navCtrl: NavController, public http: Http) { 
     this.http 
    .get('http://localhost/xampp/') 
    .map(response => response.text()) 
    .subscribe(html => this.mypage = html); 
    } 
} 

모든 URL과 같은 오류로 리드 : 내 타이프 스크립트 파일은 다음과 같다
EXCEPTION: Response with status: 0 for URL: null 오류 이온은 내 PC 또는 휴대 전화에서 봉사에 나타납니다합니다. 내가 해결해야 할 일은 무엇인가? 난 너무 구성 요소로로드 할 생각 "templateUrl : 'somehtml'"하지만, 미래에 내 애플 리케이션에서 일부 json 데이터를로드하고 싶습니다. 고맙습니다.

+0

나는 GET 요청으로부터 완전한 URL을 얻기 위해 힘든 시간을 보내고 있다고 생각한다. 심각한 보안 위험이 있습니다. 나는 그것이 매우 효과적 일지라도 앱 스토어에서 받아 들일 것이라는 점에 매우 놀랐습니다. 자체 코드베이스가 있다면 GET 요청과 상호 작용할 Api를 생성해야합니다. –

+0

SOAP 클라이언트와 REST 웹 서비스가 있습니다. 이것은 단지 학습 목적이었습니다. 따라야 할 경로는 무엇이되어야합니까? 템플릿 또는 일부 json 데이터 또는 배열을로드하려면 다른가요? –

답변

1

나는 이것을 직접 해결했다. 이것은 CORS 문제 였지만 이오닉 2에 관한 정보는 거의 발견되지 않았습니다. 답변은 ionic.config.json에 있습니다. 다음 줄을 json 항목에 추가해야합니다.

"proxies": [ 
    { 
     "path": "/virtualfolder", 
     "proxyUrl": "http://www.externalsite.com" 
    } 
    ] 

이제 진짜 문제가 있습니다. 충분히? 아니, 물론. 위로 코드로 돌아가서 나는 다음을 수행해야합니다.

this.http 
    .get('virtualfolder/someresource.html') 
    .map(response => response.text()) 
    .subscribe(html => this.mypage = html); 

외부 리소스를 지정한 경로에 매핑합니다. 그 사실을 알아 차린 후, 그 문제와 관련이없는 몇 가지 문제를 해결해야했지만, 결국 내가 원한 결과를 얻었고, 반 XSS 정책이 얼마나 멋진 것으로 나타났습니다. 희망을 나는 누군가를 도울 것입니다.

+0

html을로드하고 앱에 바인딩합니까? –

+0

@AvishaiPeretz 일부 JSON 데이터를 가져 오기 위해이 방법을 사용하려고했지만 html로도 작업했습니다. –

+0

HTML 콘텐츠의 일부만로드 할 수 있습니까? –