2010-06-26 4 views
0

Salut je fais un exercice où j'essaye de gratter le contenu du site Web de nytimes utilisant javascript/ajax.caractère illégal dans la réponse de jsonp

Afin d'envoyer la requête ajax inter domaine, j'utilise un serveur proxy qui me renvoie la réponse jsonp avec le contenu du site nytimes.

Mais puisque ce contenu html a quelques charaters (guillemets simples) qui renvoie l'erreur "caractère illégal".

<script type="text/javascript" src="http://json-proxy.jgate.de/?callback=callback&url=http%3A%2F%2Fwww.nytimes.com%2F"></script> 
<script> 
function callback(obj) { 
alert(obj); 
} 
</script> 

Quelle pourrait être une solution possible à cette erreur? Et quelles sont les autres alternatives pour résoudre ce problème?

Merci

(P.S. a posé cette question à un de mes amis dans son interview)

Mise à jour: Voici les tuyaux yahoo lien pour le même. http://pipes.yahoo.com/pipes/pipe.run?_id=748e37c218ed0747d0b868ae8eafefa6&_render=json

Répondre

0

Yahoo tuyaux fixes d ce problème.

0

Vous devez échapper les caractères sur le serveur.

callback('<!DOCTYPE html PUBLIC \"-//W...etc.') // notice the \"-//W 

Au lieu de:

callback('<!DOCTYPE html PUBLIC "-//W...etc.') // which will eventually create an error 

échapper à toutes les caractères spéciaux tels que /, \, ", '-/, \ ...

+0

Je n'ai pas accès à ce serveur proxy. J'ai trouvé ce serveur en ligne. – priyank

+1

Il y a un bug avec votre premier serveur qui le fait sortir un JSON inutilisable pour le site que vous essayez d'obtenir. Mais le Yahoo Pipes JSONP fonctionne: http://pipes.yahoo.com/pipes/pipe.run?_id=748e37c218ed0747d0b868ae8eafefa6&_render=json&_callback=callback – tcooc

Questions connexes