Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [jQuery e ajax]

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    52

    [jQuery e ajax]

    Sto iniziando a usare ajax e jQuery:
    ho provato jQuery perché con il solo JS ajax puro, mi dava problemi. Purtroppo anche con jQuery ho gli stessi risultati:

    ho provato a recuperare una variabile dal server con ajax sia in POST che GET.
    Sia con IE6 che con Firefox3.6

    il mio php è :
    codice:
    <?php
    if ($_GET['action'] == "art")
    {
    	$content = 'artGET';
    	echo $content;
    }
    
    if ( $_POST['action'] == "art" )
    {
    	$content = "artPOST";
    	echo $content ;
    }
    ?>

    con GET ho messo in JS:
    codice:
    $.get("mioIndirizzo/public/Files/PHP/content.php", {action:"art"},  
      function(data) {
        $("#p_francesco").html(data);
      });
    In IE6 e Firefox3.6, mi danno entrambi risultato "".

    con POST:
    codice:
    ("mioIndirizzo/public/Files/PHP/content.php", {action:"art"},
      function(data) {
        $("#p_francesco").html(data);
      });
    in IE6 mi dà "artPost" correttamente, in Firefox invece continua a darmi "".

    Ho provato anche:
    codice:
    $('#p_francesco').load("mioIndirizzo/public/Files/PHP/content.php", {action:"art"});
    che è un POST: IE ok, Firefox no.

    e, credo(?), con GET
    codice:
    $('#p_francesco').load("mioIndirizzo/public/Files/PHP/content.php", action="art");
    Non va in nessuno dei due.

    e anche:
    codice:
    $.ajax({
    url : "mioIndirizzo/public/Files/PHP/content.php", //
       data : 'action=art',    
    
        success : function (data,stato) {
            $("#p_francesco").html(data);
            $("#p_francesco1").text(stato);
        },
        error : function (richiesta,stato,errori) {
            alert("E' evvenuto un errore. Il stato della chiamata: "+stato);
        }
    });
    E entrambi i browser mi danno risposta="" e stato = "success".

    Insomma non ci siamo.
    Riassumendo mi funziona solo qualche chiamata in post solo con IE6.
    Qualcuno mi spiega cosa c'è che non va?
    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    52
    Sono riuscito a capire cos'era:
    la pagina in php era su un dominio diverso e così l'xmlHTTPRequest non mi restituiva il contenuto, anche se mi dava i codici ajax di comunicazione. IE6 invece mi rispondeva perché usava l'xml activeX.

    Quindi, o metto la pagina html nello stesso dominio del php, o ...?

    Avevo letto che era possibile aggirare il problema con un comando proxy in ajax ma non ricordo dove l'ho letto e come farlo.

    Qualcuno sa come aggirare il problema di domini diversi?

  3. #3
    Puoi usare un 'ponte' php sul server.
    Mi spiego meglio: anziché inviare la richiesta da AJAX direttamente al dominio remoto, puoi effettuare la richiesta ad una pagina PHP risiedente sullo stesso dominio. Da PHP, infine, puoi facilmente richiedere file remoti attraverso curl o fopen.

    Se curl e fopen non dovessero funzionare per problemi di configurazione, prova questo script che ho creato: http://remoteconnection.altervista.org

  4. #4
    Praticamente è lo stesso problema che mi sto trovando ad affrontare io. Ho esposto la situazione qui con una paio di link ad articoli che approfondiscono l'argomento ed un paio di scritp che dovrebbero fare al caso tuo. Fammi sapere se risolvi e magari anche se e come riesci a gestire i parametri del GET nel proxy php.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    52
    Grazie dei suggerimenti.
    Per ora, nel sito che mi serviva, ho risolto mettendo tutto nello stesso dominio.

    Più avanti magari proverò ad applicare i proxy.
    Avevo anche visto che si poteva usare il jsonp.

  6. #6
    Sì, puoi anche risolvere passando trattando dati tramite JSON, ma devi comunque convertire da XML a JSON e devi far eseguire la conversione o da un proxy o da chi ti fornisce l'XML.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    52
    Non ho letto né approfondito bene il tutto, ma mi pareva di aver capito che, a differenza di json normale, il jsonp scavalca la limitazione del dominio usando solo il tuo web-server.

    Anche jquery lo ha implementato:
    http://javascript.html.it/articoli/l...ross-domain/3/

    e mi pare basti aggiungere qualche riga di codice nel file php e poi gestire il tutto da jquery.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.