Reza kavian Ответов: 1

Как отправить httpcontext с ajax в параметры api


в моем контроллере:

 public class ShoppingCartController : Controller
    {
         
        // GET: /ShoppingCart/
        public ActionResult Index()
        {            
            return View(this.HttpContext);
        }
...
}


в поле зрения:я пытаюсь отправить httpcontext в метод api следующим образом.
var urll = 'https://localhost:44379/api/apiClass/IndexOfCarts';
$.ajax({
            type: "post",
            url: urll, error: function () { alert("error carts") },
               @*data: JSON.stringify(@Model.HttpContext, null, '\t'),*@
         data: { httpContext:  @Model},
        //    contentType: 'application/json',
        //dataType:"json",
            success: function (dataa) {
                alert("****ok carts****")

            }
        });



в действии api:

[Microsoft.AspNetCore.Mvc.HttpPost()]
      public ActionResult<string> IndexOfCarts([FromForm]HttpContext httpContext)
      {


          return "ddd";
      }

действия по API не называют.но при изменении параметра к другому виды и использование AJAX для запроса к API действий, действий по API называют и работа

Что я уже пробовал:

я меняю[fromform] на [frombody] для параметра,но и api не вызывается.(Программа не переходит к действию api)

F-ES Sitecore

Вы не можете этого сделать, вы можете передавать только текст в качестве параметров json, а не объекты в памяти. Чтобы отправить объект, вам нужно сериализовать его в текст, отправить через ajax, а затем десериализовать в вашем api. Httpcontext не позволяет вам делать это по умолчанию. Создайте сериализуемый объект, содержащий только те биты информации из httpcontext, которые вам нужны, и отправьте их в качестве параметров.

1 Ответов

Рейтинг:
1

Richard Deeming

То HttpContext объект представляет текущий запрос и ответ. Нет абсолютно никакого смысла передавать его другому запросу.

Вместо этого извлеките соответствующие параметры, которые вы хотите передать в новый запрос, и отправьте эти значения через POST или GET запрос.