Domanda

Sto usando Uploadify e qualcosa che prima funzionava ora non lo è e non sono sicuro del perché. Ottengo un errore HTTP restituito ogni volta che faccio clic su upload. Guardando la scheda Net in Firefox, non sembra nemmeno che stia inviando di nuovo qualcosa al server.

Ho provato a inserire la funzione di errore per aiutare il debug ma l'attributo status non è definito ..

$("#fileInput").uploadify({
                'uploader': '/scripts/upload/uploadify.swf',
                'script': '/Member/UploadImages/PerformUpload',
                'cancelImg': '/scripts/upload/cancel.png',    
                'multi': true,
                'simUploadLimit': 1,
                'fileDesc': "Images",
                'fileExt': "*.jpg;*. jpeg;*.bmp;*.png",
                'sizeLimit': 3000000,
                'onAllComplete':showFinishedLink,
                'onError': function (event, queueID ,fileObj, errorObj) {
                    var msg;
                    if (errorObj.status == 404) {
                       alert('Could not find upload script. Use a path relative to: '+'<?= getcwd() ?>');
                       msg = 'Could not find upload script.';
                    } else if (errorObj.type === "HTTP")
                       msg = errorObj.type+": "+errorObj.status;
                    else if (errorObj.type ==="File Size")
                       msg = fileObj.name+'<br>'+errorObj.type+' Limit: '+Math.round(errorObj.sizeLimit/1024)+'KB';
                    else
                       msg = errorObj.type+": "+errorObj.text;
                    alert(msg);
                    $("#fileUpload" + queueID).fadeOut(250, function() { $("#fileUpload" + queueID).remove()});
                    return false;
                    },
            });

Qualche idea?

È stato utile?

Soluzione

OK, ho capito che l'errore di debug che stavo usando era vecchio e che posso dire errorObj.info per ottenere informazioni più dettagliate sul perché non funziona.

Fatto questo e si scopre che è un 404, il che significa che lo script a cui sto tentando di POST non viene raccolto anche se esiste. Sembra un problema di routing ...

Caso chiuso!

Solo per aggiungere ulteriori informazioni al riguardo: il 404 era il risultato di un vecchio URL di accesso predefinito nel file web.config.

Una volta risolto il problema, il 404 divenne quindi un 302 (guardando i registri IIS) mentre il sito mi reindirizzava alla pagina di accesso.

Il mio script di caricamento si trova in un'area autenticata del sito e quindi ho dovuto usare qualcosa che è descritto in questo sito

Utilizzo lampeggia con aspnet mvc

Altri suggerimenti

Stavo ricevendo un errore 302 che si verificava solo in Firefox / Chrome: IE8 funzionava bene. Il problema si è rivelato che Netscape ora stava inviando cookie di autenticazione con il suo postback di file. Ho consentito il file .ashx che gestiva il caricamento di un'autorizzazione anonima nella configurazione web e non ho avuto ulteriori problemi.

<location path="UploadifyUploadHandler.ashx">
  <system.web>
    <authorization>
      <allow users="?"/>
    </authorization>
  </system.web>
</location>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top