2012-07-10 81 views
0

這是我的劇本,我無法擺脫的聯繫JSON數據,請HEP我指出,如果我錯在任何地方得到一個JSON數據,感謝ü提前無法從鏈接

<script type="text/javascript"> 
      function getsomethin() 
      //wait for HTML document 
      { 
       alert("l"); 
       $.getJSON('http://developers-blog.org/resources/jquery-ajax/heroes-list.json', function (data) { 
        console.log(data);     alert(data); 
        $.each(data, function (i, name) { 
         $("div").append(name + " "); 
        }); 
       }); 
      }  

    </script> 
+1

您無法通過對其他域的ajax調用來檢索json。你可以看看使用jsonp。 – nbrooks 2012-07-10 06:16:06

+0

您是否試圖執行跨域Ajax請求?如果developers-blog.org支持它,你需要做一個jsonp請求。否則,您需要對自己的網絡服務器執行Ajax請求,並讓您的網絡服務器向developers-blog.org請求數據。 – nnnnnn 2012-07-10 06:17:03

回答

0

您必須使用JsonP進行跨域請求。

「jsonp」:使用JSONP加載JSON塊。添加額外的「?callback =?」到您的URL的末尾來指定回調。除非緩存選項設置爲true,否則通過向URL追加查詢字符串參數「_ = [TIMESTAMP]」來禁用緩存。

嘗試這樣

$(document).ready(function() { 
    var url = "http://developers-blog.org/resources/jquery-ajax/heroes-list.json"; 
    $.getJSON(url + "?callback=?", function(data) { 
     console.log(data);     alert(data); 
        $.each(data, function (i, name) { 
         $("div").append(name + " "); 
    }); 
}); 
+0

請注意,這會更改_client-side_代碼以生成jsonp請求,但除非該特定url指向支持jsonp的服務器端進程,否則它不會真正起作用。 (它不。) – nnnnnn 2012-07-10 06:25:00

+0

嗨@nnnnnn我編輯了片段爲 var url =「http://developers-blog.org/resources/jquery-ajax/heroes-list.json」; $ .getJSON(url +「?callback =?」 但它仍然不工作警報(數據)本身不起作用 – kavinhuh 2012-07-10 06:42:35

+0

@ user1386579 - 是的,它不會爲該網址工作,因爲該網址返回一個普通的JSON文件。它不支持jsonp請求(你可以改爲對你自己的web服務器進行標準的Ajax調用,並讓你的web服務器從developers-blog.org獲取JSON,然後再把它傳回給你的JS。) – nnnnnn 2012-07-10 06:48:11

0

需要JSONP如果跨域

$.ajax({ 
    url: 'http://example.com/.../file.json', 
    data: 'param=3', 
    dataType: 'jsonp', 
    success: function(results) { 
     //callback 
    }, 
    complete: function() { 
     //callback 
    } 
}); 

http://api.jquery.com/jQuery.ajax/

+0

只有在客戶端_and_服務器上處理得當,jsonp才能正常工作。 – nnnnnn 2012-07-10 06:28:39

0

我用這種格式徑自得到從鏈路的數據,它的工作,謝謝你們對我們的支持

if (xmlHttp.readyState==4) 
     { 
      alert(xmlHttp.status); 
      if(xmlHttp.status==200) 
      { 

      alert("hi"); 
      var jsondata=eval("("+xmlHttp.responseText+")") //retrieve result as an JavaScript object 
      jsonOutput=jsondata.message.result; 
      alert(jsonOutput); 

      InitializeLeadStorage() 

     } 
     }