一个 DotNET API 控制器仅返回 HTML 到 React

问题描述 投票:0回答:1

我有两个相同的控制器,

WeatherForecastController
(来自库存的 DotNET API / React 项目,但已被删除)和
ExampleReactController
。两者相同:

using Microsoft.AspNetCore.Mvc;

namespace DotNetReact_BackEnd.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {
        private static List<string> Data = new List<string>() { "Testing", "123" };

        [HttpGet]
        public IEnumerable<string> Get()
        {
            return Data;
        }
    }
}



using Microsoft.AspNetCore.Mvc;

namespace DotNetReact_BackEnd.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class ExampleReactController : ControllerBase
    {
        private static List<string> Data = new List<string>() { "Testing", "123" };

        [HttpGet]
        public IEnumerable<string> Get()
        {
            return Data;
        }
    }
}

我的代理已配置:

const { createProxyMiddleware } = require('http-proxy-middleware');

const context = [
    "/weatherforecast",
    "/examplereact"
];

module.exports = function (app) {
    const appProxy = createProxyMiddleware(context, {
        target: 'https://localhost:7048',
        secure: false
    });

    app.use(appProxy);
};

两者都可以与 Swagger 配合使用,并且都可以与 Postman 配合使用,但由于某种原因,只有

WeatherForecastController
可以与 React 配合使用:

async populateStrings() {
        const response = await fetch('weatherforecast');
        console.log(response);
        const data = await response.json();
        console.log(data);
        this.setState({ forecasts: data, loading: false });
    }

这将返回

Array(2)

async populateStrings() {
    const response = await fetch('examplereact');
    console.log(response);
    const data = await response.json();
    console.log(data);
    this.setState({ forecasts: data, loading: false });
}

但是这会返回:

'未捕获(承诺中)语法错误:意外的标记'<', "

javascript reactjs .net .net-core
1个回答
0
投票

已解决:删除了节点模块文件夹并执行了

npm install restore
,并以某种方式修复了它。某些内容一定已损坏或缓存且未被覆盖。

© www.soinside.com 2019 - 2024. All rights reserved.