2016-10-17 14 views
0

URLからJSON-Text-Streamを取得しようとしています(例:SOMEURL/ean.php?id = 4001513007704)。結果は以下のようになります。AngularJS経由で外部URLからテキストを取得

{ 
 
    "product": { 
 
     "ean_id": "4001513007704", 
 
     "title": "Gerolsteiner Mineralwasser", 
 
... 
 
    }, 
 
    "success": true 
 
}

あなたが見ることができるように、これらは、スキャンの項目のいくつかの情報です。 URL( - >http://www.w3schools.com/angular/tryit.asp?filename=try_ng_http_get)を使用して実装を検索しましたが、この例は内部URLに対してのみ機能します。 Googleやその他のソースは変数を空白のままにします。

これは機能します。

<!DOCTYPE html> 
 
<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
<body> 
 

 
<div ng-app="myApp" ng-controller="myCtrl"> 
 

 
<p>Today's welcome message is:</p> 
 

 
<h1>{{myWelcome}}</h1> 
 

 
</div> 
 

 
<p>The $http service requests a page on the server, and the response is set as the value of the "myWelcome" variable.</p> 
 

 
<script> 
 
var app = angular.module('myApp', []); 
 
app.controller('myCtrl', function($scope, $http) { 
 
    $http.get("http://www.w3schools.com/angular/default.asp") 
 
    .then(function(response) { 
 
     $scope.myWelcome = response.data; 
 
    }); 
 
}); 
 
</script> 
 

 
</body> 
 
</html>

をそして、これは(変数が空白のままに)しません:それは、入力されたウェブサイトのHTMLコードを返します。この場合、私はGoogleを使用しますが、通常は別のソースを使用します。

<script> 
 
var app = angular.module('myApp', []); 
 
app.controller('myCtrl', function($scope, $http) { 
 
    $http.get("http://google.com/") 
 
    .then(function(response) { 
 
     $scope.myWelcome = response.data; 
 
    }); 
 
}); 
 
</script>

私は私がURLからデータを取得できますか

...それがあるため、ウェブサイトからのセキュリティ設定のだと仮定?回避策はありますか?

ありがとうございました!

+0

示すように、サイト内のリンクhttp://google.com/とW3学校で上記のコードを実行してみてくださいすでに閉鎖して投票しました。 –

答えて

1

response.dataは、応答内にdataオブジェクトがある場合にのみ何かを返します。

あなたはgoogle.comにリクエストを送信する際に取得thatyou応答はこれです:

<TITLE>302 Moved</TITLE></HEAD><BODY> 
<H1>302 Moved</H1> 
The document has moved 
<A HREF="https://www.google.co.in/">here</A>. 
</BODY></HTML> 

そのURLは、HTML、およびなく、いくつかのJSONレスポンスを提供ためです。

これにresponse.dataを実行すると、のデータが存在しないため、未定義になります。 JSONデータを持つ適切なエンドポイントにヒットした場合、あなたはあなたの応答を得るでしょう。

たとえば、URLをhttps://api.github.com/users/mralexgray/reposに変更すると、データが表示されます。

+0

response.dataはウェブサイトから少なくともHTMLコードを返さないはずですか?これは空白であってはいけません。 – Amiya

+0

応答でしょう。 response.dataはそうではありません。これはJSONではないので、ドット表記を使用することはできません – nikjohn

0

htmlに含まれる角度モジュールを定義していないため、このエラーが発生しています。

<!DOCTYPE html> 
 
<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
<body> 
 

 
<div ng-app="myApp" ng-controller="myCtrl"> 
 

 
<p>Today's welcome message is:</p> 
 

 
<h1>{{myWelcome}}</h1> 
 

 
</div> 
 

 
<p>The $http service requests a page on the server, and the response is set as the value of the "myWelcome" variable.</p> 
 

 
<script> 
 
var app = angular.module('myApp', []); 
 
app.controller('myCtrl', function($scope, $http) { 
 
    $http.get("http://google.com/") 
 
    .then(function(response) { 
 
     $scope.myWelcome = response.data; 
 
    }); 
 
}); 
 
</script> 
 

 
</body> 
 
</html>

enter image description here

+0

Hey!申し訳ありませんが、私はあなたが私に話そうとしているものを得ていません。あなたのスクリーンショットはスペースも空白のままにしています!具体的に何を意味するのか説明できますか? – Amiya

+0

スクリーンショットは私がgoogle.comにヒットしたときに成功したと応答し、メッセージが印刷されて動作することを意味します –

関連する問題