这个问题可能是由于以下几个原因导致的:身份验证问题、API 路由问题或者 Function App 配置问题。
下面是一些可能的解决方法:
示例代码:
import { HttpClient, HttpHeaders } from '@angular/common/http';
// Function App API URL
const apiUrl = 'https://your-function-app-url/api/your-api-endpoint';
// B2C access token
const accessToken = 'your-access-token';
// Headers with B2C access token
const headers = new HttpHeaders({
'Authorization': 'Bearer ' + accessToken
});
// Make API call
this.http.get(apiUrl, { headers }).subscribe(
response => {
console.log(response);
},
error => {
console.error(error);
}
);
示例代码:
[FunctionName("YourFunctionName")]
public static async Task Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "your-api-endpoint")] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
// Your function logic
return new OkObjectResult("Success");
}
示例代码:
[FunctionName("YourFunctionName")]
public static async Task Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "your-api-endpoint")] HttpRequest req,
ILogger log,
ExecutionContext context)
{
// Validate B2C access token
if (!req.Headers.ContainsKey("Authorization"))
{
return new UnauthorizedResult();
}
string accessToken = req.Headers["Authorization"].ToString().Replace("Bearer ", "");
// Your validation logic
// Your function logic
return new OkObjectResult("Success");
}
如果上述解决方法仍然无法解决问题,建议进一步检查 Function App 的日志和错误信息,以了解更多有关 500 错误和 404 错误的详细信息。另外,确保你的 Angular 应用程序和 Function App 都具有适当的权限和访问权限。