2012-08-27 8 views
14

Ho un'app HTML5/JavaScript che è stata originariamente scritta per l'esecuzione in determinate macchine. Fondamentalmente, ho bisogno di configurare la mia app per l'esecuzione nel browser per una semplice demo per un cliente.Disabilita lo stesso criterio di origine in Mobile Safari

Sto utilizzando jQuery .ajax che causa problemi a causa della stessa politica di origine. Ho trovato molti modi per disabilitare questo nei browser desktop, ma non quelli mobili.

Il mio obiettivo è quello di demo l'app su un iPad in Mobile Safari. C'è un modo per disattivare temporaneamente la stessa politica di origine su un iPad?

+1

+1, mi piacerebbe una risposta anche a questo. –

+0

Hai provato a impostare l'intestazione Access-Control-Allow-Origin: * sul server? –

+0

Purtroppo non ho alcun controllo sul server a cui sto facendo chiamate AJAX. La mia soluzione a breve termine era di ospitare uno script proxy php sullo stesso server su cui ho ospitato il mio html/js. Fortunatamente, i servizi di cui avevo bisogno hanno finalmente aggiunto le intestazioni CORS alle loro risposte che mi hanno permesso di eliminare il mio script proxy. – Danny

risposta

0

È necessario eseguire un server Web, non il protocollo di file.

+0

Dovrebbe essere in esecuzione su un server web per accedere in modo semplice dall'iPad in primo luogo. Il problema è che non ho alcun controllo sui servizi che chiamo, che non includono le intestazioni CORS nelle loro risposte. La soluzione che mi è venuta in mente era di ospitare uno script proxy php sullo stesso server del mio html/js. – Danny

0

Fondamentalmente, è necessaria un'intestazione.

Inserire questo codice nella parte superiore della pagina a cui si desidera inviare richieste tra domini diversi.

<?php header("Access-Control-Allow-Origin: *"); ?> 

stare attenti con la *, in quanto ciò consente a qualsiasi sito web per inviare richieste alla pagina da cui colpo di testa che viene inviato da.

Il * può essere sostituito con domini, ad esempio esempio.com, esempio.net.

1

Ho avuto lo stesso problema con un'applicazione Sencha. Ho risolto impostando un percorso di base per il mio javascript chiamate ajax, esempio:

var BASEPATH = 'http://192.168.1.200/myapp'; 

$.ajax({ 
    url: BASEPATH+'/someaction' 
}); 

E dal cellulare accedo con http://192.168.1.200/myapp

Il mio problema era che il da cellulare ottengo accesso solo con IP, ma l'Ajax la chiamata era puntata a localhost.

Spero che questo trucco sia d'aiuto.