2009-07-09 16 views
6

Ho avuto il seguente problema, penso che sia probabilmente dovuto al fatto che il mio approccio potrebbe essere fuorviato, ma spero che con il tuo aiuto riesca a risolverlo!Errore AJAX e NS_ERROR_DOM_BAD_URI

Fondamentalmente, per il mio sito ho un provider di ricerca (che è stato pagato, quindi non sto rompere le condizioni di utilizzo). Quando il modulo di ricerca viene sottomesso, sono indirizzato al loro dominio in cui vengono visualizzati i risultati.

Anche se riesco a personalizzare l'aspetto dei risultati restituiti, c'è solo così tanto che posso prenderlo, e non riuscirò mai a integrarlo pienamente nell'aspetto del mio sito.

Quindi, ho pensato, invece di eseguire il normale GET tramite il modulo, avrei eseguito un AJAXified GET e poi iniettato la risposta restituita in un div sulla pagina, permettendomi di mantenere l'aspetto e non lasciare mai il nostro dominio.

Questo funziona perfettamente in IE ma in firefox ottengo "text/html (NS_ERROR_DOM_BAD_URI)" come errore. Avendo fatto alcune ricerche ho scoperto che questo è dovuto alla richiesta AJAX che colpisce un sito al di fuori del nostro dominio.

Quindi, c'è un approccio migliore che posso adottare per ottenere lo stesso effetto? o c'è un modo in cui posso ottenere firefox e la mia richiesta AJAX per giocare bene? La cosa veramente strana è che se osservo la richiesta in HttpFox (una aggiunta FF ordinata), riporta l'errore sopra, ma guardando il contenuto restituito è tutto lì come previsto - quindi perché non posso accedervi! !

Mi piacerebbe molto farlo funzionare perché è molto più semplice della riscrittura di tutti i nostri CSS e roba per ottenere la pagina dei risultati simile al nostro sito. Qualsiasi aiuto in quest'area sarebbe molto apprezzato.

risposta

1

Dovrai utilizzare JSONP per eseguire il cross domain per quanto ne so, è un'eccezione di sicurezza in AJAX. JQuery lo gestisce bene, ma dovrai modificare la risposta del server per abbinarlo.

Ho eseguito un progetto OSS per azioni sociali che utilizza un proxy PHP. Puoi visualizzarlo qui: http://os.adamaltemus.com/social-actions/

0

E 'anche possibile, se si Attualmente sei su una pagina web http e sta tentando di inviare una chiamata AJAX a un sito web https sullo stesso dominio.