Skip to content

ZeroFrame.monkeyPatchAjax() not working. Documentation needed! #2392

@ghost

Description

Step 1: Please describe your environment

  • ZeroNet version: 0.7.1 (rev4253)
  • Operating system: Ubutu 18.04
  • Web browser: Firefox (Latest)
  • Tor status: available
  • Opened port: Closed
  • Special configuration: None

Step 2: Describe the problem:

CORS errors when trying to read files using XMLHttpRequest,

Steps to reproduce:

http://127.0.0.1:43110/142uPiiSkemLEviQsYwYtvLvLW7H8mpZWs

<!DOCTYPE html>

<html>

<head>

 <title>New ZeroNet site!</title>

 <meta charset="utf-8">

 <meta http-equiv="content-type" content="text/html; charset=utf-8" />

 <base href="" target="_top" id="base">

 <script>base.href = document.location.href.replace("/media", "").replace("index.html", "").replace(/[&?]wrapper=False/, "").replace(/[&?]wrapper_nonce=[A-Za-z0-9]+/, "")</script>

</head>

<body>

  <input type="file" id="button">


  <div class="viewer">

      <span>3d Preview</span>

    <div id="viewer"></div>

  </div>

<div id="out"></div>

<script type="text/javascript" src="js/ZeroFrame.js"></script>

<script>

class Page extends ZeroFrame {
    setSiteInfo(site_info) {
        var out = document.getElementById("out")
        out.innerHTML =
            "Page address: " + site_info.address +
            "<br>- Peers: " + site_info.peers +

            "<br>- Size: " + site_info.settings.size +

            "<br>- Modified: " + (new Date(site_info.content.modified*1000))

    }

    onOpenWebsocket() {
        this.cmd("siteInfo", [], function(site_info) {
            page.setSiteInfo(site_info)
        })
    }

    onRequest(cmd, message) {
        if (cmd == "setSiteInfo")
            this.setSiteInfo(message.params)
        else
            this.log("Unknown incoming message:", cmd)
    }
}
page = new Page()


</script>

<script type="text/javascript">(new ZeroFrame).monkeyPatchAjax();     </script>

  <script src="js/Detector.js"></script>

  <script src="js/three.min.js"></script>

  <script src="js/STLLoader.js"></script>

  <script src="js/TrackballControls.js"></script>

  <script src="js/viewer.js"></script>


<script type="text/javascript">  


    var loader = new THREE.STLLoader();
      loader.addEventListener( 'load', function ( event ) {

         var geometry = event.content;
          scene.add( new THREE.Mesh( geometry ) );

     } );
      loader.load( '/stl/Demo.stl' );
</script>  


</body>

</html>

Observed Results:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://127.0.0.1:43110/stl/Demo.stl?ajax_key=undefined. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

Expected Results:

Need to retreive STL 3d model using XMLHttpRequest in order for Javascript to load it onto a preview screen, which already works outside of ZeroNet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions