Our Partner & Developer boards on the community are moving to a brand new home: the .dev community forums! While you can still access past discussions here, for all your future app and storefront building questions, head over to the new forums.

Re: Blank response when fetching data from server via app proxy.

Blank response when fetching data from server via app proxy.

angevin-capital
Shopify Partner
2 0 0

I'm simply trying to fetch some test html data from my app server and display it on the shopify web page but I just get an unpopulated response. I've tried applying CORS settings I think are relevant in the server response to no avail.

 

Client code:

<head>
</head>
<body>
<button onclick="onPageLoad()">Testtt.</button>
</body>

        <script>
                function onPageLoad() {
                   return new Promise((resolve, reject)=> {
                        fetch('https://test.myshopify.com/apps/proxy_app',{
                                method: 'POST',
                                redirect: 'manual',
                                headers: {
                                        'Content-Type':'text/html',
                                },
                        })
                        .then((response) => {
                                console.log(response);
                                return response.text(); // Return the promise
                        })
                        .then((htmlContent) => {
                                console.log(htmlContent); // Log the HTML content
                                console.log("test_2");
                                resolve(htmlContent);
                                console.log("test_3");
                        })
                        .catch((error) => {
                                console.error('Error:', error); // Log any errors
                        });
                  })
                }



                // Call the onPageLoad function when the page finishes loading

                window.onload = onPageLoad;
        </script>

Server code:

import {ActionFunction} from '@remix-run/node'
import {authenticate} from '~/shopify.server'
import {Page} from '@shopify/polaris'

export const action: ActionFunction = async ({request}) => {
        console.log("------------hit app proxy------------")

        const{session} = await authenticate.public.appProxy(request)
        if(session){
        //console.log(session)
        }

        const htmlButton = `<button onclick="onClickButton()">Click me</button>`;
        console.log(htmlButton)
        return new Response(htmlButton, {
            headers: {
                'Content-Type': 'text/html',
                'Access-Control-Allow-Origin': '*', // Allow requests from any origin
                'Access-Control-Allow-Methods': 'GET, POST, OPTIONS', // Allow specific HTTP met                
'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept'}, }); } const Proxy = () => { return <Page>Proxy</Page> } export default Proxy;

Browser logs:

angevincapital_0-1710539471925.png

 

Reply 1 (1)

DodoDev
Shopify Partner
4 0 0

Same here! Did you find something?