2016-10-06 7 views
0

Im ajaxに新しく追加されました。私は答えを見つけようとしていたが、対応するものを見つけるのは幸運ではなかった。基本的には、いくつかのデータを取得するためにajaxを使用し、その後このデータを変数に格納する必要があります。この変数は、後でカスタムコードでコールバック関数の属性として使用されます。コールバック関数の属性値としてajaxからデータを取得

このajaxの部分は、単なるmyObjectのメソッドです。

だから、最後に、私はこの種の機能が必要です。

myObject.getData(url, callback(data) { 
//my custom code of what I wanna do after ajax is complete 
}); 

私のコードをHERE

/* いくつかのプロパティをCOME他の方法WICHは、CASE */

されていません
//This is where Im stuck 
var getData = function getFromUrl($url) { 
     $.ajax({ 
       type: 'get', 
       url: $url, 
       dataType: 'html', 
       success: function(html) { 
         $obj = html;//Im lost on this step! 
          }, 
     }); 
}; 

P.S. Im trying to find an async way (without using async:false). Hope its possible 
+0

あなたの関数htmlは$ urlのすべてを提供しています。 $ urlはインターネット上のランダムなURLですか?またはあなたによって書かれたPHPファイルですか?それが2番目の場合は、文字列、json文字列、xmlファイル、何をするかを問うことができます。いずれにしても、あなたの質問には十分な情報がありません – Aschab

+0

返信いただきありがとうございました!それは最初のケースになるでしょう(私はjsonファイルで任意のランダムなURLを与えて、それから情報を得て、その後私もそれを与えるコールバック関数でこのデータを処理したい)。だから、私はページに入力があると言うことができます、私はそれにURLとコールバック関数(関数(recievedData){このデータを処理する任意のコード})を与えるので、データの応答が与えられた後、コールバックは、 。 –

答えて

0

最初に私は多くの問題に遭遇しました。私の最初の問題はNo Access-Control-Allow-Originでした。ほとんどのWebサイトでは、セキュリティ上の理由からデータを取得するだけで済みません。幸いにも誰かが既にプロキシを作った:http://cors.io/。第2の問題はhttpsにhttpを埋め込むことができないことです。私はjsfiddleを使用してこの作業を表示することはできません。これは私のローカル環境で動作します。解析しなければならない未加工のhtmlを取得した後、完全正規表現で行うことができます。あるいは、この例で行っているようにjqueryで自分自身を強化することもできます。私たちがやっていることは、stackoverflow.comをチェックし、.find( "。bounty-indicator-tab")を使って特集記事の量を得ることです。しかし、いったん完全なhtmlがあれば、必要なデータを得ることができます。

var getData = function getFromUrl(url) { 
    $.ajax({ 
     url: 'http://cors.io/?' + url, 
     crossDomain: true, 
     dataType: 'html', 
     success: function (html) { 
     var match = $(html).find(".bounty-indicator-tab").first().html(); 
     console.log(match); 
     return match; 
     }, 
     error: function(e) { 
     console.log('Error: '+e); 
     } 
    }); 
}; 

url = 'http://stackoverflow.com/'; 
data = getData(url); 
//You cant use data yet because its working async 
関連する問題