2016-07-24 5 views
0

Bitte helfen Sie mir, ich Daten von meiner Homepage Meine AJAX Anfrage erhalten kann nicht:Wie kann ich beantragen, auf meine json.json Daten von meiner Homepage zuzugreifen?

$.ajax({ 
       url:"http://example.com/json.json?jsoncallback=?", 
       type:"GET", 
       dataType:"jsonp", 
       beforeSend:function(){ 
        console.log("before send"); 
       }, 
       success:function(data,status){ 
       console.log("success"); 
       } 
      }); 

Und json.json Datei in meiner Homepage

> { "firstName": "John", "lastName": "Smith", "isAlive": true, 
> "age": 25, "address": { 
>  "streetAddress": "21 2nd Street", 
>  "city": "New York", 
>  "state": "NY", 
>  "postalCode": "10021-3100" }, "phoneNumbers": [ 
>  { 
>  "type": "home", 
>  "number": "212 555-1234" 
>  }, 
>  { 
>  "type": "office", 
>  "number": "646 555-4567" 
>  }, 
>  { 
>  "type": "mobile", 
>  "number": "123 456-7890" 
>  } ], "children": [], "spouse": null } 

Bitte schlage ich durch die Suche auf Google viel versucht und hier aber kann nicht verstehen

Antwort

0

Der Fehler, den ich beobachtete, ist die Verwendung von Datentyp JSONP, wo die ursprünglichen Daten im JSON-Format sind. Daher sollte unten Block des Codes gut funktionieren, wenn es keine domänenübergreifende Anfrage ist.

$.ajax({ 
     url : "http://example.com/json.json", 
     type : "GET", 
     success:function(data,status){ 
     console.log(data); //json data from the requested url 
     }, 
     failure:(xhr,responseText,status){ 
     //failure block 
     } 
    }); 

Aber in Ihrem Fall, wenn es sich um eine Cross-Domain-Anforderung ist, und Sie haben nicht Ihre json Daten durch eine Callback-Funktion umgeben, unter Codeblock wird gut funktionieren, aber Sie werden yql Bibliothek importieren müssen auf Ihrer Seite https://github.com/hail2u/jquery.query-yql:

function getCrossDomainData(){ 
    try{ 
     var site = "http://example.com/json.json"; 
     var url = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from json where url="' + site + '"') + '&format=json&callback=cbFunc'; 
     $.ajax({ 
      url: url, 
      dataType: 'jsonp', 
     }); 
     function cbFunc(data) { 
      // get the data in this block 
     } 
    }catch(err){ 
     console.log("Err in getCrossDomainData : "+err); 
    } 
} 
Verwandte Themen