簡體   English   中英

如何在相同解決方案的asp.net核心Razor頁面中使用單獨的asp.net核心web api

[英]How to Use separate asp.net core web api in asp.net core Razor Page in Same Solution

我使用Asp.net Core Razor Page作為我的webApp和asp.net Core api項目作為我的api服務單獨...現在我如何在WebApp中使用apis ...謝謝

如果這兩個項目具有不同的原始文件,則需要在ASP.NET Core中啟用跨源請求(CORS)

然后你可以使用ajax或fetch api來調用Razor Pages中的web api。

例如,假設Razor Pages有一個原始的https://localhost:44304和Web Api https://localhost:44362

1.在Web Api項目startup.cs

ConfigureService:

services.AddCors(options =>
        {
            options.AddPolicy("MyPolicy",
            builder =>
            {
                builder.WithOrigins("https://localhost:44304")
                .AllowAnyHeader()
                .AllowAnyMethod();
            });
        });

配置:

app.UseCors("MyPolicy");
app.UseHttpsRedirection();

2.Razor Pages Index.cshtml:

<div>
<input type="button" value="Test"
        onclick="requestVal('https://localhost:44362/api/values')" />
<span id='result'></span>
</div>

<script>
function requestVal(uri) {
    const resultSpan = document.getElementById('result');

    fetch(uri)
        .then(response => response.json())
        .then(data => resultSpan.innerText = data)
        .catch(error => resultSpan.innerText = 'See F12 Console for error');
}
</script>

3.單擊按鈕並顯示結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM