2012-06-05 4 views
1

J'ai une URL json externe.accéder à JSON sur un serveur externe

http://kun6858.iptime.org:8080/apps/list/?app_mb_no=9

Et j'accéder à ce JSON avec jquery $ .getJSON (..)

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 
<body> 
<script> 
$.getJSON(
    "http://kun6858.iptime.org:8080/apps/list/?jsoncallback=?", 
    { 
     app_mb_no : 9 
    }, 
    function(data) { 
     console.log(data); 
    } 
); 
</script> 
</body> 
</html> 

Mais je ne peux pas accéder au JSON en utilisant la source ci-dessus.

Je n'ai aucune idée sur la façon d'accéder à JSON du serveur externe. Est-ce que ma source a un problème? ou le JSON?


pour votre référence, c'est capture d'écran ..

enter image description here

+0

C'était un secret de Jquery ajax .. http://stackoverflow.com/questions/7936610/json-uncaught-syntaxerror-unexpected-token –

Répondre

0

Vous devez utiliser JSONP pour l'accès inter-domaines. Par conséquent, vous devez modifier votre appel AJAX.

Une bonne explication pour ce scénario est ici:

http://www.jquery4u.com/json/jsonp-examples/

+0

essayé avec (function ($) {var url = 'http://kun6858.iptime.org:8080/apps/list/'; .ajax $ ({ Type: 'GET', url: url, async: false, contentType: "application/json" , dataType: 'jsonp', données: { \t app_mb_no: 9 \t } }); }) (jQuery); ceci mais la même chose ... –

+0

Salut Patrick, est-ce que votre serveur Applikation supporte jsonp? Comme vu dans l'exemple, vous devez envelopper votre réponse jsonp dans la fonction jsoncallback. Cordialement, Monsi –

0

Trois points:

  1. ne pas besoin app_mb_no valeur dans votre appel ajax? par exemple. app_mb_no : 9
  2. Vous pouvez utiliser l'équivalent .ajax: $.ajax({ url: url, dataType: 'json', data: data, success: callback });
  3. Avez-vous exécuter votre code sous un serveur web? Vous devez le faire. Je ne sais pas exactement comment cela fonctionne, mais cela a résolu mon problème.
+0

Je l'ai essayé sur mon propre serveur après votre réponse.mais la même chose s'est produite .. et modifié app_mb_no: 9 –

+0

aller pour la console javascript, at-il quelque chose lié à des choses de domaine croisé? –

+0

j'utilise le chrome et il me donne "SyntaxError Uncaught: Jeton inattendu:" –

0

Ajouter ceci dans ServletResponse

response.setHeader("Access-Control-Allow-Origin", "*"); 
    response.setContentType("Content-Type:application/json;charset=UTF-8"); 

Et le Html

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 
<body> 
<script> 
var url = "http://localhost:8080/apps/list/?app_mb_no=9"; 


if ($.browser.msie && window.XDomainRequest) { 
    // Use Microsoft XDR 
    var xdr = new XDomainRequest(); 
    xdr.open("get", url); 
    xdr.onload = function() { 
    var JSON = $.parseJSON(xdr.responseText); 
    if (JSON == null || typeof (JSON) == 'undefined') 
    { 
     JSON = $.parseJSON(data.firstChild.textContent); 
    } 
    processData(JSON); 
    }; 
    xdr.send(); 
} else { 
      $.ajax({ 
      type: 'GET', 
      url: url, 
      processData: true, 
      data: {}, 
      dataType: "json", 
      success: function (data) { processData(data); } 
      }); 
} 

function processData(data) { 
    console.log(data); 
} 
</script> 
</body> 
</html> 

Si quelqu'un sait mieux s'il vous plaît me apprendre !! grâce

+0

testé dans IE8, mais n'a pas fonctionné –

+0

Pour moi-même, http://stackoverflow.com/questions/7936610/json-uncaught-syntaxerror-unexpected-token –

Questions connexes