2009-07-09 7 views
6

J'ai eu le problème suivant, je pense que c'est probablement dû au fait que mon approche peut être erronée, mais j'espère qu'avec votre aide je peux résoudre ceci! Fondamentalement, pour mon site, j'ai un fournisseur de recherche (qui a été payé, donc je ne viole pas les conditions d'utilisation). Lorsque le formulaire de recherche est soumis, je suis dirigé vers leur domaine où les résultats sont affichés. Alors que je peux personnaliser l'apparence des résultats retournés, il y a seulement jusqu'à présent que je peux le prendre, et je ne l'intégrerai jamais complètement à l'apparence de mon site. Donc, je pensais, au lieu de faire le GET régulier via le formulaire, je ferais un GET AJAXified et ensuite injecter la réponse retournée dans un div sur la page - me permettant de maintenir l'apparence et de ne jamais laisser notre domaine.erreur AJAX et NS_ERROR_DOM_BAD_URI

Cela fonctionne très bien dans IE, mais dans firefox je reçois "text/html (NS_ERROR_DOM_BAD_URI)" comme une erreur. Après avoir fait des recherches, j'ai découvert que cela est dû à la demande AJAX frapper un site en dehors de notre domaine.

Ainsi, y a-t-il une meilleure approche que je peux prendre pour obtenir le même effet? ou est-ce qu'il y a un moyen que je peux obtenir firefox et ma demande AJAX pour jouer gentil? Ce qui est vraiment étrange, c'est que si j'observe la requête dans le HttpFox (un ajout FF soigné), il rapporte l'erreur ci-dessus, mais en regardant le contenu retourné, tout est là comme prévu - alors pourquoi je ne peux pas y accéder! !

Je voudrais vraiment que cela fonctionne car c'est beaucoup plus simple que de réécrire tous nos CSS et d'autres choses pour obtenir une page de résultats ressemblant presque à notre site. Toute aide dans ce domaine serait très appréciée.

Répondre

1

Vous devrez utiliser JSONP pour faire du domaine croisé autant que je sache - c'est une exception de sécurité dans AJAX. JQuery le gère bien, mais vous devrez modifier la réponse du serveur pour qu'il corresponde.

J'ai réalisé un projet OSS pour les actions sociales en utilisant un proxy PHP. Vous pouvez le regarder ici: http://os.adamaltemus.com/social-actions/

0

Il est également possible si vous êtes actuellement sur une page Web http et essayez d'envoyer un appel AJAX à un site Web https sur le même domaine.