Prise en JSONP via jQuery

Mise à JOUR 1:

C'est ce que j'obtiens dans le navigateur si j'type

http://www.remote_host.com/feed.php?callback=jsonpCallBack

{
    "rss": {
        "channels": [
            {
                "title": "title goes here",
                "link": "http://www.remote_server.com/feed.php",
                "description": "description goes here",
                "items": [
                    {
                        "title": "item title goes here",
                        "link": "item link goes here",
                        "pubDate": "item date goes here",
                        "description": "item description goes here"
                    },
                    {
                        "title": "item title goes here",
                        "link": "item link goes here",
                        "pubDate": "item date goes here",
                        "description": "item description goes here"
                    },
                    {
                        "title": "item title goes here",
                        "link": "item link goes here",
                        "pubDate": "item date goes here",
                        "description": "item description goes here"
                    }
                ]
            }
        ]
    }
}

Donc ce n'est pas jsonp?

QUESTION D'ORIGINE:

J'ai le script suivant lorsque j'essaie d'obtenir des données json à partir d'un hôte distant:

$(document).ready(function() {
    get_json_feed();

    function get_json_feed() {
        $.ajax({
            url: 'http://www.remote_host.com/feed.php?type=json',
            type: 'GET',
            dataType: 'jsonp',
            error: function(xhr, status, error) {
                alert("error");
            },
            success: function(json) {
                alert("success");
            }
        });
    }
});

Mais pour une raison que j'obtiens une erreur et d'avertissement:

Avertissement: des Ressources interprété comme
Script mais transféré, avec le type MIME
texte/html.

Erreur: Uncaught SyntaxError:
Jeton inattendu :

Ce que je fais mal?

  • u ne essayer de changer le type??
  • de quel type? J'ai 2 types de client type et le type de données, et j'ai un type à serverside.
  • Cela sonne comme le serveur ne renvoie pas JSONP. Vous devriez essayer (un) feed.php?type=jsonp et (b) si le serveur prend en charge JSONP, normalement il accepte un paramètre avec lequel vous spécifiez le nom de rappel, quelque chose comme: feed.php?type=jsonp&callback=?. Vous devez lire la documentation du service que vous utilisez.
  • écrire jsonp: 'callback', jsonpCallback: 'jsonpCallback', à ur, en option
  • Oh merci, j'ai oublié à ce sujet... reste à préciser si le nom est différent...
  • Kling, comment puis-je vérifier si ce que vous dites la raison, j'obtiens l'erreur? Je suis en train de créer le service moi-même. Le serveur distant m'appartient.
  • J'ai juste essayé, et j'ai l'impression d'avoir les mêmes erreurs.
  • Essayer quelques combinaisons de paramètres dans le navigateur et/ou de lire la documentation. E. g. si vous tapez http://www.remote_host.com/feed.php?type=json dans la barre d'adresse et la réponse ne ressemble pas à funcName({...}) mais comme {...}, puis vous obtenez JSON et non JSONP.
  • Si le serveur appartient à vous, vous aussi, vous devez le configurer pour revenir JSONP.
  • Kling, je pensais que j'avais. Quand j'ai taper manuellement l'url pour le serveur, je rentre les données json à l'écran.
  • JSON n'est pas JSONP. Lisez à propos de JSONP: en.wikipedia.org/wiki/JSONP et de voir @Pointu de la réponse.
  • Consultez la mise à jour 1 pour confirmer.
  • Non, ce n'est pas JSONP, c'est juste JSON. Encore une fois, lisez le lien Wikipédia et voir @Pointu de la réponse. Dans ce cas , la réponse devrait ressembler à jsonpCallBack({...}), où {...} est le JSON que vous avez posté ci-dessus.
  • Merci. Fera et sera de retour dans quelques instants.

InformationsquelleAutor oshirowanen | 2011-06-02