2010-11-10 4 views
2

Problèmene peut pas faire window.location.reload() dans l'appel ajax

Je ne suis pas en mesure de rafraîchir la page avec window.location.reload() qui est utilisé dans l'appel de succès fait à yahoo.

Tout indique comment il peut être réparé. L'ensemble du code fonctionne très bien, il est en train de faire appel au serveur cse pour récupérer le contenu de yahoo. mais je dois actualiser manuellement la page pour apporter le contenu. Je veux que ce soit automatique donc j'ai utilisé window.location.reload() mais ça ne marche pas. Toutes les suggestions comment cela peut être fait. La fonction ci-dessous est en fait une fonction pour un bouton.

+0

le script s'il vous plaît publier que la description ne fournit pas assez de détails – mpapis

+0

Est-ce que JSON valident? jsonlint.com – Incognito

+0

Peut-être que je suis un malentendu. Vous dites que la requête var = Yahoo ... fonctionne très bien, vous obtenez cette réponse en retour. Mais alors vous dites que vous envoyez cette réponse au serveur 2 via POST. Je ne vois pas ce deuxième appel. Je vois un appel GET ajax, mais vous ne transmettez pas les données. Aussi, pourquoi utilisez-vous xmlHttp directement quand vous avez les trucs YAHOO.util? – Prescott

Répondre

1

C'est le problème, juste là.

Si votre script est exécuté à partir du domaine du serveur CSE, vous ne pouvez pas envoyer de données au serveur yahoo. Ce sont les principales limites de javascript. De même, si vous utilisez le domaine yahoo, vous pouvez lui envoyer des données, mais vous ne pouvez pas envoyer de données au serveur CSE, à moins qu'il ne fasse partie du domaine yahoo.

travaillerais: Obtenir des données de blahblahblah.yahoo.com, puis envoyer des données à somedomain.yahoo.com

ne fonctionneraient pas: Obtenir des données de blahblahblah.somesite.com et envoyer des données à somedomain.yahoo Point principal, si vous obtenez des données de "csce.unl.edu" et que vous exécutez ce domaine (c'est-à-dire que vous exécutez votre script dans une fenêtre de navigateur de ce domaine), vous ne pouvez envoyer des données qu'à un serveur. site qui se termine par ".unl.edu". Donc, vous pouvez envoyer ou recevoir de "test.unl.edu", mais pas un site yahoo.

Une solution: Hébergez un script proxy sur un serveur Web ou écrivez tout votre code en PHP. Voici deux grandes références sur ce qu'est un script de proxy est, et le second lien fournit en fait l'un pour vous: Link 1 Link 2

Pas plus besoin d'aide, vous pouvez me le faire savoir, je devais en créer un moi-même, sur mon serveur, et je peux vous aider si vous rencontrez des problèmes.

+0

@ LostInTheCode: Désolé de ne pas avoir résolu le problème. J'ai fait les changements dans le texte ci-dessus pour montrer ce qui ne va pas. – Judy

+0

window.location.reload() peut être remplacé par "history.go (0)" ou "window.location.href = window.location.href " – LostInTheCode

1

avez-vous essayé:

window.location = window.location; 
Questions connexes