Skip to content

Commit

Permalink
Merge pull request #4497 from Shopify/fd-fix-cart-post
Browse files Browse the repository at this point in the history
[Theme] Fix cart requests
  • Loading branch information
frandiox committed Sep 20, 2024
2 parents 0e92776 + fa91638 commit c24bfca
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 5 deletions.
5 changes: 5 additions & 0 deletions .changeset/sharp-eggs-remember.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@shopify/theme': patch
---

Fix cart/add request in development.
Original file line number Diff line number Diff line change
Expand Up @@ -180,16 +180,17 @@ describe('dev proxy', () => {
// Removed:
event.node.req.headers.connection = '...'
event.node.req.headers['proxy-authenticate'] = '...'
event.node.req.headers.accept = 'text/html'
event.node.req.headers.host = 'abnb'
// Kept:
event.node.req.headers.accept = 'text/html'
event.node.req.headers.cookie = 'oreo'
event.node.req.headers['user-agent'] = 'vitest'
event.node.req.headers['x-custom'] = 'true'

expect(getProxyStorefrontHeaders(event)).toMatchInlineSnapshot(`
{
"X-Forwarded-For": "42",
"accept": "text/html",
"cookie": "oreo",
"user-agent": "vitest",
"x-custom": "true",
Expand Down
8 changes: 4 additions & 4 deletions packages/theme/src/cli/utilities/theme-environment/proxy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
defineEventHandler,
clearResponseHeaders,
sendProxy,
getProxyRequestHeaders,
getRequestHeaders,
getRequestWebStream,
getRequestIP,
type H3Event,
Expand Down Expand Up @@ -167,7 +167,9 @@ const HOP_BY_HOP_HEADERS = [
'trailer',
'transfer-encoding',
'upgrade',
'expect',
'content-security-policy',
'host',
]

function patchProxiedResponseHeaders(ctx: DevServerContext, event: H3Event, response: Response | NodeResponse) {
Expand Down Expand Up @@ -203,10 +205,8 @@ function patchProxiedResponseHeaders(ctx: DevServerContext, event: H3Event, resp
* Filters headers to forward to SFR.
*/
export function getProxyStorefrontHeaders(event: H3Event) {
const proxyRequestHeaders = getProxyRequestHeaders(event) as {[key: string]: string}
const proxyRequestHeaders = getRequestHeaders(event) as {[key: string]: string}

// H3 already removes most hop-by-hop request headers:
// https://github.com/unjs/h3/blob/ac6d83de2abe5411d4eaea8ecf2165ace16a65f3/src/utils/proxy.ts#L25
for (const headerKey of HOP_BY_HOP_HEADERS) {
delete proxyRequestHeaders[headerKey]
}
Expand Down

0 comments on commit c24bfca

Please sign in to comment.