asp.net-mvciispostroxy-fileman

Allowing POST method to an HTML page in ASP.NET MVC


Allowing POST method to an HTML page in ASP.NET MVC

I am using ASP.NET with MVC 5.2 and I am integrating RoxyFileManager to my CKEditor.

The integration was fine, the problem is when I try to upload some file to my web server, I got this error:

NetworkError: 405 Method Not Allowed - http://localhost:35418/FileManager/index.html?...

The RoxyFileManager uses the POST method to upload the file and my webserver does not accept it. I can't figure out how can I fix it.

If I put manually an image to my directory I can see it in the file manager, also I can create and exclude folders there.

To clarify my question: I want to know how can I make my webserver accept the POST method to a HTML page, just it. All the relevant information are above. I have a HTML page and want to make it accept POST.

#UPDATE:

I've figured out the problem is a browser issue.

  1. In Google Chrome everything works fine;
  2. In Firefox I get the error above;
  3. In IE things seens to work fine, but it have cache problems (I can upload and edit previously sent files, but I can't see the changes neither the recent file uploads until cache expires);

I'll work on these problems and post the answer here, if successful.


Solution

  • To solve the IE bug it's simple but it's hard-work: You need to add in every ajax call of RoxyFileMan the line cache: false. You need to do it in every .js file on the RoxyFileMan folder.

    Example:

    $.ajax({
        url: d, dataType: "json", async: true, success: function (h) {
            for (i = 0; i < h.length; i++) { e.push(new File(h[i].p, h[i].s, h[i].t, h[i].w, h[i].h)) }
            g.FilesLoaded(e)
        },
        error: function (h) { alert(t("E_LoadingAjax") + " " + d) },
        cache: false
    })
    

    With this, all the ajax made by Roxy will have no cache, solving the IE issue.

    To solve the Firefox bug I've changed this in the main.min.js:

    BEFORE:

    document.forms.addfile.action = RoxyFilemanConf.UPLOAD
    

    AFTER:

    $('form[name="addfile"]').attr('action', RoxyFilemanConf.UPLOAD);
    

    I've found this solution here.

    And now my file manager is working on all modern browsers.