Search code examples
javascriptfilehttpcross-domaincross-origin-resource-policy

"Cross origin requests are only supported for HTTP." error when loading a local file


I'm trying to load a 3D model, stored locally on my computer, into Three.js with JSONLoader, and that 3D model is in the same directory as the entire website.

I'm getting the "Cross origin requests are only supported for HTTP." error, but I don't know what's causing it nor how to fix it.


Solution

  • My crystal ball says that you are loading the model using either file:// or C:/, which stays true to the error message as they are not http://

    So you can either install a webserver in your local PC or upload the model somewhere else and use jsonp and change the url to http://example.com/path/to/model

    Origin is defined in RFC-6454 as

       ...they have the same
       scheme, host, and port.  (See Section 4 for full details.)
    

    So even though your file originates from the same host (localhost), but as long as the scheme is different (http / file), they are treated as different origin.