JQuery Form Plugin File Upload usando POST redirige a la respuesta POST

Por favor, ayuden chicos, ¡Este es un BLOQUEADOR importante!

Tengo un proyecto que usa NodeJS +jQuery Form Plugin + Typescript en el que estoy tratando de hacer una carga de archivos. Después de la carga del archivo, el servidor envía una respuesta al mensaje POST que aparece en la pantalla. El archivo se carga correctamente y completamente antes de que la respuesta POST se muestre en la pantalla. Espero que la respuesta POST llame a la función "éxito" en lugar de redirigir la página para mostrar la respuesta JSON.

Aquí está el código:

$(new ID().setAsRoot().selectId()).append(
    "<form id=\"fileUploadForm\" accept-charset=\"utf-8\" method=\"post\" action=\"/upload\" enctype=\"multipart/form-data\">" +
        "<input id = \"filename\" type=\"file\" name=\"userfile\" multiple=\"multiple\" />" +
        "<button type=\"submit\" id = \"submitButton\"> Upload </button></form>");

var form = $("#fileUploadForm");
form.submit(function (e) {
    //e.preventDefault();
    this.ajaxSubmit({
        type: form.attr('method'),
        url: form.attr('action'),
        data: form.serialize(),
        success: function (data) {
            var x = JSON.parse(data);
            alert("Success : " + x);
        },
        error: function (data) {
            var x = JSON.parse(data);
            alert("Error : " + x);
        }
    });
});

la función de éxito no se llama (lo que significa que no se muestra el mensaje de alerta). Los datos JSON simplemente se renderizan en la pantalla de esta manera:

{
  "path": "data\\cb3409f1cc234ec3f64b60d80be13a3e.html",
  "name": "feed.html"
}

Hay un error en la consola que dice:

Uncaught SyntaxError: Unexpected token : shortcut_manager.js:123
(anonymous function) shortcut_manager.js:123
(anonymous function) extensions::messaging:327
Event.dispatchToListener extensions::event_bindings:386
Event.dispatch_ extensions::event_bindings:371
Event.dispatch extensions::event_bindings:392
dispatchOnMessage

Aquí está el código del lado del servidor que lo maneja. El servidor utiliza el formidable módulo NodeJS.

public upload(req:express.Request, res) {

        var form = new formidable.IncomingForm();
        var originalFileName:String;
        var filePath:String;
        form.uploadDir = this.directory;
        form.keepExtensions = true;
        form.type = 'multipart';
        var fields = [];
        form
            .on("error", function (err) {
            })
            .on("field", function (field, value) {
            })
            .on("end", function () {
                res.send({
                    path: filePath,
                    name: originalFileName
                });
            })
            .on("file", function (name, file:formidable.File) {
                originalFileName = file.name;
                filePath = file.path;
            });
        form.parse(req);
        return;
    }

--Actualizar--

Si lo hago$.ajax en lugar dethis.ajax. El archivo no se carga. La consola del navegador muestra un error:

XMLHttpRequest cannot load http://localhost/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. 

Respuestas a la pregunta(5)

Su respuesta a la pregunta