Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [jquery] iis non supporta il metodo .load() - HELP

    Salve a tutti, mi ritrovo con un bel problema da risolvere e non so proprio come venirne a capo, spero nel vostro provvidenziale aiuto.

    Ho una funzione jquery di questo tipo:
    codice:
    function loadBullets(url){
    		map.load(url, {}, function(){
    			//place bullets
    			$(this).children('a.bullet').each(function(){
    				var coords = $(this).attr('rel').split('-');
    				$(this).css({left: addpx(coords[0]), top: addpx(coords[1])})
    					   .hide()
    					   .click(function(){showPopup($(this).attr('id'));})
    					   .fadeIn('fast');
    			});
    		});
    	}
    Funziona perfettamente sul mio server di prova e su altri server, ma purtroppo non funziona proprio sul server che mi interesserebbe.
    Ho visto che il server in questione ha come webserver iis, e da qualche ricerca su google ho letto che molti hanno avuto il mio stesso problema, purtroppo però non sono riuscito a capire come hanno risolto e se la cosa è risolvibile.

    Quando provo a far girare lo script sul server in questione ottengo questo errore:
    codice:
    Failed to load resource: the server responded with a status of 405 (Method Not Allowed)
    Aspetto fiducioso qualsiasi vostro suggerimento.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    1)se lanci l'url dal browser ricevi sempre l'errore 405?

    2) se non devi passare nessun parametro di input, leva il secondo parametro "{}"

    3) la funzione load è solo una forma abbreviata di una chiamata ajax con valorizzazione di un contenitore, ora facendo una normalissima chiamata ajax(GET o POST) hai lo stesso problema?

  3. #3
    Anzitutto ti ringrazio per la risposta.
    Indagando circa il problema che sto avendo è venuto fuori quanto segue (o almeno questo ho capito).
    Il metodo .load() passa automaticamente i contenuti tramite il metodo POST se i contenuti sono oggetti, ed è proprio quì che nasce il problema.
    IIS di default non permette il passaggio di oggetti html tramite il metodo POST ma solo tramite il metodo GET, generalmente ho visto che chi può accedere alla configurazione di IIS gli basta andare ad abilitare questo metodo (POST) per le estensioni di file che interessano (in questo caso html).
    Io purtroppo non ho modo di configurare il webserver IIS e quindi devo per forza trovare un altra soluzione.

    L'ideale sarebbe usare la funzione .get() al posto della funzione .load(), solo che io non sono molto ferrato in Jquery e quindi non so come riscrivere la funzione usando il metodo giusto, mi daresti una mano?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    puoi vedere gli esempi nel sito di jquery: http://api.jquery.com/jQuery.get/

  5. #5
    Ti ringrazio, gli esempi li avevo già visti, però non sono riuscito a farci granché.
    Ad esempio non sono riuscito a capire come applicare quelle funzioni che ho io con la funzione .get().
    Se uso la stessa scrittura, per esempio questa:
    codice:
    $(this).children('a.bullet').each(function(){...
    non funziona.

    Nella documentazione dicono che la funzione .load() è molto simile alla funzione .get(), stesso numero di parametri.
    Io avevo provato così:

    codice:
    function loadBullets(url){
    		$.get(url, function(){
    			//place bullets
    			$(this).children('a.bullet').each(function(){
    				var coords = $(this).attr('rel').split('-');
    				$(this).css({left: addpx(coords[0]), top: addpx(coords[1])})
    					   .hide()
    					   .click(function(){showPopup($(this).attr('id'));})
    					   .fadeIn('fast');
    			});
    		});
    	}
    Però non funziona.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    con $(this) nella funzione load fai riferimento al contenitore associato, nel tuo caso dovrebbe essere l'oggetto map... con la get invece non esiste nessun contenitore, perche la funzione si occupa solo di effettuare una chiamata ajax e null'altro... quindi sei tu che devi riempire manualmente il contenitore. Una cosa del genere:

    codice:
    $.get(url, function(data){
                            map.html(data);
    			//place bullets
    			map.children('a.bullet').each(function(){
    				var coords = $(this).attr('rel').split('-');
    				$(this).css({left: addpx(coords[0]), top: addpx(coords[1])})
    					   .hide()
    					   .click(function(){showPopup($(this).attr('id'));})
    					   .fadeIn('fast');
    			});
    		});

  7. #7
    Vinvad ti posso baciare?? .
    Ti avverto però che sono maschio, peloso e trasandato

    Ti ringrazio infinitamente, problema risolto

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    di nulla figurati

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.