首页 > 解决方案 > React JS 在 IIS 上托管后无法正常工作

问题描述

问题:我使用 Visual Studio 模板创建了带有 asp.net core 和 redux 的 react js 应用程序。我添加了一个基于肥皂的 Web 服务作为连接服务并通过控制器调用它。在我的本地机器中(当我通过 Visual Studio 解决方案运行它时),它工作正常。但是当我在 IIS 上托管它时,它会为我提供服务中的元数据。React 客户端工作正常,但它应该从控制器返回的代码不起作用。

这是我从有效负载中得到的: 这是有效负载的屏幕截图

有人可以帮我解决这个问题吗?

这是来自 redux 的完整有效负载:

这是我收到的完整有效负载(来自 redux):

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="theme-color" content="#000000">
<base href="/ClientApp/build/"/>
<link rel="manifest" href="/ClientApp/build/manifest.json">
<link rel="shortcut icon" href="/ClientApp/build/favicon.ico">
<title>My application title name</title>
<link href="/ClientApp/build/static/css/2.e3c13add.chunk.css" rel="stylesheet">
<link href="/ClientApp/build/static/css/main.18472c62.chunk.css" rel="stylesheet">
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root" style="min-width:500px">
</div>
<script>!function(p){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],i=0,l=[];i<n.length;i++)t=n[i],Object.prototype.hasOwnProperty.call(a,t)&&a[t]&&l.push(a[t][0]),a[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(p[r]=o[r]);for(s&&s(e);l.length;)l.shift()();return c.push.apply(c,u||[]),f()}function f(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==a[u]&&(n=!1)}n&&(c.splice(r--,1),e=i(i.s=t[0]))}return e}var t={},a={1:0},c=[];function i(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return p[e].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=p,i.c=t,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(r,e){if(1&e&&(r=i(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)i.d(t,n,function(e){return r[e]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="/ClientApp/build/";var r=this.webpackJsonpnibrs=this.webpackJsonpnibrs||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;f()}([])</script>
<script src="/ClientApp/build/static/js/2.c61b596a.chunk.js">
</script>
<script src="/ClientApp/build/static/js/main.7c65033f.chunk.js">
</script>
</body>

我发现原因是 - 在调用控制器时,它在控制器方法前面加上 clientapp/build 像这样 [http://localhost:8082/clientapp/build/api/login/istwofactorenabled]。这会给我一个空白页。相反,它应该指向 [http://localhost:8082/api/login/istwofactorenabled]。

现在,我不确定如何让它以这种方式访问​​控制器。任何帮助,将不胜感激。

标签: reactjstypescriptasp.net-corereact-redux

解决方案


推荐阅读