Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

219
Views
¿Cómo llamar dinámicamente a un ActionResult en su API usando una llamada Ajax?

He codificado en StartUp.cs el siguiente código para llamar a mi API.

 services.AddHttpClient("MyApi", c => { #if DEBUG c.BaseAddress = new Uri("https://localhost:12345"); #else c.BaseAddress = new Uri("https://myApi.com"); #endif

Pero cuando quiero llamar a ActionResult usando una llamada Ajax, no puede encontrar la API.

 alert(apiUrl); $.ajax({ url: apiUrl + '/MyApiProcesses/GetSomething', type: 'POST',

Así que he escrito esta variable en un archivo js.

 var apiUrl = 'https://localhost:12345'; //var apiUrl = 'https://myApi.com';

Quiero saber si es posible escribirlo dinámicamente. Si lo declaras en el inicio, ¿no tienes que declararlo dos veces?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Si necesita usar direcciones URL en ajax o httpclient, generalmente lo hago de esta manera, pero se necesitan varios pasos para obtener una cadena de configuración de aplicaciones.

  1. Crear la sección AppUrl en appsettings.json
 "AppUrl": { "DevUrl": "http//..", "ProductUrl": "http//..", .... another urls if needed },

2.Crear clase para esta sección

 public class AppUrlSettings { public string DevUrl{ get; set; } public string ProdUrl{ get; set; } ....another urls }
  1. configurar los ajustes en el inicio
 var appUrlSection=Configuration.GetSection("AppUrl"); services.Configure<AppUrlSettings>(appUrlSection); var urls = appUrlSection.Get<AppUrlSettings>(); services.AddHttpClient("MyApi", c => { #if DEBUG c.BaseAddress = new Uri(urls.DevUrl); #else c.BaseAddress = new Uri(urls.ProdUrl; #endif });
  1. ahora puedes usarlos así
 public class MyController:Controller { private readonly IOptions<AppUrlSettings> _appUrls; public MyController (IOptions<AppUrlSettings> appUrls) { _appUrls = appUrls; } public IActionResult MyAction() { var model= new Model { DevUrl=_appUrls.Value.DevUrl; ... } } }

luego puede usar direcciones URL como campos ocultos.

o puede obtener direcciones URL del modelo en javascript directamente:

 var devUrl = @Html.Raw(Json.Encode(@Model.DevUrl)); .....

O si necesita las URL en muchos lugares, puede tener sentido crear un servicio especial que pueda inyectar directamente en las vistas que necesita.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!