سؤال

أحاول الاستيلاء على البيانات من JSON على موقع خارجي، لكن الموقع لا يدعم إخراج JSON-P. هذا مثال على رمز عدم العمل، لكنه يعطي فكرة جيدة عما أحاول تحقيقه:

$.getJSON("http://www.bom.gov.au/fwo/IDV60901/IDV60901.94868.json", function(data){
    //Process data here
});

هل هناك طرق حول هذا بخلاف استضافة البيانات أو تنزيلها ومعالجتها باستخدام مكالمة AJAX / PHP؟ أفضل أن أفعل الخادم مؤقتا أو تنزيل البيانات وبدء متصفح المستخدم الذي يمزجه مباشرة.

شكرا مقدما!

هل كانت مفيدة؟

المحلول

ال سياسة الأصل نفسه من بين معظم المتصفحات لن تتيح لك القيام بذلك دون خادم خارجي مستعد أو وكيل جانب الخادم. هناك عدد قليل من الاختراقات التي يمكنك تجربتها مع فلاش:

http://flxhr.flensed.com/

هذا يفترض أن المستخدم الخاص بك يحتوي على فلاش مثبت، ولكن عموما، إذا كان لديهم جافا سكريبت مثبتا، فسيكون لديهم أيضا فلاش ...

أو

إذا كانت البيانات التي تبحث عنها جاء كأغذية في مكان ما، فيمكنك تمريرها أنابيب ياهو وسوف يعيدوا JSONP لك.

حظا سعيدا

نصائح أخرى

سيكون أسهل خيار تشغيل مكالمة JSON من خلال برنامج نصي وكيل PHP، مثل هذا واحد:

<?php
// PHP Proxy
// Loads a file from any location.
// Author:Paulo Fierro
// January 29, 2006
// usage: proxy.php?url=http://mysite.com/myxml.xml

$session = curl_init($_GET['url']);                    
curl_setopt($session, CURLOPT_HEADER, false);          
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);   
$xml = curl_exec($session);                            
echo $xml;        
curl_close($session); 

?>

واستخدام ذلك كمصدر لك ajaxcall

$.getJSON("proxy.php?url=http%3A%2F%2Fwww.bom.gov.au%2Ffwo%2FIDV60901%2FIDV60901.94868.json", function(data){
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top