I have a project that consists of 1 oak (express for deno) server, and 1 fresh server. I launch them both through separate commands. On their own, they both work. I can't connect them though. The backend works as demonstrated here. I used postman to get all users.

In my fresh app my routes directory looks like this:
routes
├── about.tsx
├── index.tsx
├── users
│ ├── [id].ts
│ └── [id].tsx
├── sampledata.ts
└── sampledata.tsx
This is what the relevant files look like:
sampledata.tsx:
/** @jsx h */
import { h } from "preact";
import { PageProps } from "$fresh/server.ts";
import Layout from '../components/layouts.tsx';
export default function SampleData({props}:PageProps) {
console.log(props);
return (
<Layout>
<ul>
{props.data.map(post => {
return <li>{post.email}</li>
})}
</ul>
</Layout>
)
}
sampledata.ts:
import { Handlers } from "$fresh/server.ts"
export const handler: Handlers = {
async GET(_req, ctx) {
const rawPosts = await fetch('http://localhost:4000/users');
const posts = await rawPosts.json();
console.log(posts);
return ctx.render(posts);
}
}
When I navigate to http://localhost:8000/sampledata I get this:

So why is this failing? How do I do a simple API call from my Fresh app to my Oak server backend?