2011-03-07 17 views
49

Estoy trabajando en Javascript para ejecutar localmente en mi PC. Estoy usando un plugin jQuery CSV (http://plugins.jquery.com/project/csv) para cargar un archivo csv en javascript arrays. El guión es simple:"Origen nulo no está permitido por Access-Control-Allow-Origin" en Chrome. ¿Por qué?

$(function(){ 
$.get("file.csv", function(data){ 
    stuff = $.csv()(data); 
}) 
}) 

En Firefox funciona bien, pero en Chrome que dice "nulo origen no está permitido por Access-Control-Allow-Origen". Qué significa eso? Encuentro todo tipo de hilos sobre cosas del servidor cruzado relacionadas con este error, pero solo estoy trabajando con archivos locales.

+1

Tuve el mismo problema. Se resolvió fácilmente con un servidor local, como: XAMPP, WAMP y similares. No hay necesidad de trucos especiales. –

Respuesta

88

Chrome no cree que haya ninguna relación común entre dos archivos locales.

Puede iniciarlo con la opción "--allow-file-access-from-files" para indicarle que no está de acuerdo.

Gracias al maestro ascendente Nick Craver por esta información cuando hice la misma pregunta hace bastante tiempo.

+0

Hmm. Intento lo que dices pero sigo teniendo el mismo error. Tal vez estoy comenzando Chrome mal? – Moss

+12

asegúrese de haber cerrado todas las instancias de Chrome que se estén ejecutando; de lo contrario, no detectará el cambio. así que asegúrese de que no haya chrome.exe en la lista de procesos – chrismarx

+0

¿Y en MACOSX? – sparkle

2

Es como CrossDomain por algún motivo poco claro (cada navegador actúa de forma diferente con respecto a este problema, incluso podría probar IE y ver los resultados). Debería probar y ejecutarlo a través de un servidor web, y darle una ruta absoluta ya que el javascript se ejecuta localmente.

-1

Puede intentar ejecutarlo en su servidor web Apache. Funcionará.

+0

esto debería ser un comentario ... –

17

Si está utilizando Mac OS X, abra el Terminal, cd a la raíz de su web y ejecutar:

python -m SimpleHTTPServer 

continuación, abra la siguiente URL en Chrome (o cualquier otro navegador web):

http://0.0.0.0:8000 
+3

funciona !. Gracias. Para MAC OS X es la mejor solución. – Gere

+0

funciona en Linux también. Esta es una gran solución para aquellos que necesitan un servidor web rápido. – Phyxx

Cuestiones relacionadas