2017-10-29 8 views
0

私は、イオン2を使用してアプリケーションを開発していると私は別のドメインの外部のページから一部のデータを抽出したい、と私はそれを解決した方法は、次のようにphpである:

myPhp.php

PHPファイルは、ローカルのApacheサーバー上で実行されている
<?php 
    header('Access-Control-Allow-Origin: *'); 

    //$url = 'http://www.flalottery.com/fantasy5'; 
    $url = 'http://www.flalottery.com/exptkt/ff.html'; 
    $pagina = file_get_contents($url); 
    echo $pagina; 
?> 

home.ts

import { Http } from '@angular/http'; 
import 'rxjs/add/operator/map' 
import { NavController } from 'ionic-angular'; 
@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class HomePage { 

    constructor(public navCtrl: NavController, 
       public http: Http) { 
    this.http.get('http://localhost/myPhp.php').subscribe(
     datos => console.log(datos._body)) 
    } 
} 

phpファイルの処理方法は、JavaSecriptまたはTypeScriptですが、どうすればできますか?

+0

あなたはおそらくできCORSの制限のためではなく、サーバー側プロキシアプローチはそのようなことを行う最も一般的な方法です。クライアント側の要求が同じドメインであるため、アクセス制御ヘッダーは不要です。 – charlietfl

+0

CORSがリモートサーバー上で有効になっていない場合、クロスドメインで動作しない@Tenbo – charlietfl

答えて

0

使用アヤックス

$.ajax({ 
    type: "GET", 
    url: "http://www.flalottery.com/exptkt/ff.html" 
}).done(function(data){ 
    console.log(data); 
}); 

または使用の単純なGETリクエスト

$.get("http://www.flalottery.com/exptkt/ff.html", function(data) { 
    console.log(data); 
}); 

または使用XHR

var xhr = new XMLHttpRequest(); 
xhr.open("GET", "http://www.flalottery.com/exptkt/ff.html", true); 
xhr.onload = function() { 
    console.log(xhr.responseText); 
}; 
xhr.send(); 
+0

オプション3を試してみます。オプション1と2を試してみてくださいが、これは.tsファイルではできません。いくつかの調査を行い、jqueryをインストールするようになっています。https://forum.ionicframework.com/t/jquery-in-ionic-and-typescript/54015、まずパッケージをインストールします。 npm install jquery --save、入力ファイルをインストール(入力と入力)、npm install -g入力、タイピングインストールdt〜jquery --global --save、そして最後に、jsファイルをtsファイルにインポートし、* as $ fromをインポートします。 'jquery'、私はこれを行うと、次のエラーが表示されます:キャッチエラー:モジュール "jquery"を見つけることができません –

+0

私はあなたが私に与える3つのオプションを試してみますが、それらのすべてで同じエラーが発生します: 失敗http://www.flalottery.com/fantasy5をロードする: 'Access-Control-Allow-Origin'ヘッダーが要求されたリソースに存在しません。したがって、 'http:// localhost:8100'はアクセスが許可されていません。 私はhtmlコードを取得していません –

+0

crossDomainを追加してみてください:最初のajaxリクエストにtrueを返します。失敗した場合は、データをリクエストしているWebサイトがサードパーティのリクエストをブロックしています –

関連する問題