Skip Navigation

CORS doesn't work on the piefed API

Not sure where to post this: the Piefed API doesn't support CORS, at least testing against piefed.social, so requests from webapps like photon, alexandrite, voyager via PWA would not work.

Also, is there a way to pass a fedilink to resolve, like Lemmy resolveObject?

And lastly, how is Piefed planning on handling updates to the API for lemmy v1? Things like varying object type arrays being combined, and new/updated sorts.

Thanks!

You're viewing a single thread.

6 comments
  • I've added CORS now :)

    • Nice, thanks! I’ll try it again soon

    • I checked piefed.social and I'm still getting CORS errors. Does the change still have yet to be deployed there?

      • It's working for me. Try this:

         undefined
            
        <!-- Save this as test-cors.html and open in a browser -->
        <!DOCTYPE html>
        <html>
          <body>
            <script>
              fetch("https://piefed.social/api/alpha/comment?id=6527216", {
                method: "GET", // or "POST", etc.
                headers: {
                  "Content-Type": "application/json"
                }
              })
              .then(response => response.text())
              .then(data => console.log("Success:", data))
              .catch(error => console.error("CORS Error:", error));
            </script>
          </body>
        </html>
        
          
        • Ah, that works, but this doesn't:

           html
              
          <!-- Save this as test-cors.html and open in a browser -->
          <!DOCTYPE html>
          <html>
            <body>
              <script>
                fetch("https://piefed.social/comment/6527914", {
                  method: "GET", // or "POST", etc.
                  headers: {
                    "Content-Type": "application/json",
                    Accept: "application/activity+json",
                  },
                })
                  .then((response) => response.text())
                  .then((data) => console.log("Success:", data))
                  .catch((error) => console.error("CORS Error:", error));
              </script>
            </body>
          </html>
          
            

          nor this:

           html
              
          <!-- Save this as test-cors.html and open in a browser -->
          <!DOCTYPE html>
          <html>
            <body>
              <script>
                fetch("https://piefed.social/.well-known/nodeinfo", {
                  method: "GET", // or "POST", etc.
                  headers: {
                    "Content-Type": "application/json"
                  },
                })
                  .then((response) => response.text())
                  .then((data) => console.log("Success:", data))
                  .catch((error) => console.error("CORS Error:", error));
              </script>
            </body>
          </html>
          
            
6 comments