2016-07-06 16 views
0

URLからJSONデータを取得するには、「url」フィールドにアクセスして文字列として保存します。そこにあるすべてのソリューションは、サーバー上でのみ動作するようです。つまり、Apacheサーバなどでphpを実行している場合などです。私は私のコードを実行すると:jquery/javascriptを使用したHTMLページからのJSONの解析

$(document).ready(function() { 
    var url = 'http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US'; 
    $.get(url, function (data) { 
     $(data).find("url").each(function() { 
      var el = $(this); 

     console.log("------------------------"); 
     console.log("link  : " + el.find("url").text()); 
     }); 
    }); 
}); 

を私はエラーを取得:XMLHttpRequestがロードできない...いいえ「アクセス制御 - 許可 - 起源」ヘッダは、要求されたリソース上に存在します。私は広範囲にわたり研究していますが、すべてのソリューションはローカルファイルに対しては機能しません。 JSONPとCORSの両方がここで動作しないようです。

編集:これを簡単な質問に修正しようとしましょう。 サーバサイドスクリプトを使用せずにJSONオブジェクトを解析することはできますか?

+4

あなたは慈善事業を操作していないですbing.com –

+1

ビング以外のドメインにアクセスできません。 – miyamoto

+0

@Daniel_Lドメインを設定するコード 'document.domain = 'example.com'を見たことがあります。これはローカルで使用することも、サーバー上でのみ使用することもできますか? – Alex

答えて

-2

これは、サーバー側のスクリプトを使用するのに適している場合は、これを試してください。 Javascriptがポストクエリに

$(document).ready(function() { 
    var url = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US'; 
    $.post('/get.php',{u:url}, function (data) {   
     console.log(data); 
    }); 
}); 

Serverファイルget.phpを設定します

$ch = curl_init($_POST['u']); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$response = curl_exec($ch); 
curl_close($ch); 

echo $response; 
+0

ここでの目標は、PHPを使用しないことです。ページがPHPの場合、これに対応するソリューションがたくさんありますが、このページがあるサーバーにはアクセスできません。 – Alex

関連する問題