From 61ffca6290c5eb6efc4219c8bf630e653e802a13 Mon Sep 17 00:00:00 2001 From: SteveSandersonMS Date: Fri, 3 Feb 2017 10:52:11 +0000 Subject: [PATCH] In aspnet-prerendering, parse the incoming querystring before passing it to the boot func for convenience. Fixes #638. --- .../npm/aspnet-prerendering/package.json | 2 +- .../npm/aspnet-prerendering/src/Prerendering.ts | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/package.json b/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/package.json index 99f2bae5ca..92fc616fc3 100644 --- a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/package.json +++ b/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/package.json @@ -1,6 +1,6 @@ { "name": "aspnet-prerendering", - "version": "2.0.2", + "version": "2.0.3", "description": "Helpers for server-side rendering of JavaScript applications in ASP.NET Core projects. Works in conjunction with the Microsoft.AspNetCore.SpaServices NuGet package.", "main": "index.js", "scripts": { diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/Prerendering.ts b/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/Prerendering.ts index 18bcfd3f45..15969049aa 100644 --- a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/Prerendering.ts +++ b/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/Prerendering.ts @@ -16,7 +16,9 @@ export function createServerRenderer(bootFunc: BootFunc): RenderToStringFunc { }); const parsedAbsoluteRequestUrl = url.parse(absoluteRequestUrl); const params: BootFuncParams = { - location: url.parse(requestPathAndQuery), + // It's helpful for boot funcs to receive the query as a key-value object, so parse it here + // e.g., react-redux-router requires location.query to be a key-value object for consistency with client-side behaviour + location: url.parse(requestPathAndQuery, /* parseQueryString */ true), origin: parsedAbsoluteRequestUrl.protocol + '//' + parsedAbsoluteRequestUrl.host, url: requestPathAndQuery, baseUrl: (requestPathBase || '') + '/',