Reza kavian Ответов: 1

Как использовать ajax для отправки данных в действие api в другом проекте


я acan использую ajax и api action в одном проекте и правильно отправляю данные и обновляю их.
но когда я хочу отправить данные из ajax в моем проекте в действие api в моем другом проекте,действие api не работает!

$.ajax({
                  type: "post",
                  url: urll, error: function () { alert("errore") },
                  data: {id: 4},
                  success: function (dataa) {
                      alert("ok");
                      var x = JSON.stringify(dataa, null, '\t');
                      var dataaa = $.parseJSON(x); alert(dataaa.price);
                      dataa.price -= 1.02;
                      var url2 = 'https://localhost:44337/api/apiialbums/PutAlbum';
                      //var url2 = 'http://localhost:51111/api/AlbumsApi/PutAlbum';
                      $.ajax({
                          type: "PUt",
                           //async: false,
                          url: url2,
                          //data: JSON.stringify(dataa, null, '\t'),
                          data: {album: dataa },
                          //contentType: "application/json; charset=utf-8", ///////
                          //dataType:"json",
                          success: function (dataaz) {
                              alert("updated");
                              alert(dataaz.price);
                              var x2 = JSON.stringify(dataaz, null, '\t');
                              alert(x2);
                          },
                          error: function () {
                              alert("error in update..");
                          }
                      })
                  }
              });

и мое действие api [httpput]:
[HttpPut]
      public async Task<ActionResult<Album>> PutAlbum([FromBody]Album album)
      {
          _context.Entry(album).State = EntityState.Modified;
          await _context.SaveChangesAsync(); return album;
      }


когда я точку останова на API действий,
Я понимаю, что программа не относится к действию

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

I searched the internet a lot but I could not find the reason, please help me to solve this problem as soon as possible

1 Ответов

Рейтинг:
1

Sandeep Mewara

Для кросс-проектов (предполагая, что вы пытаетесь сделать AJAX-запросы к другому домену) вам необходимо включить CORS.
Арбитраж: Включить запросы перекрестного происхождения (CORS) в ASP.NET ядро | Microsoft Docs[^]

Существует три способа включения CORS:

1. В middleware через именованный политику или политику по умолчанию.
2. Использование маршрутизации конечных точек.
3. С [EnableCors] атрибут.

Хотя в случае, если ваш другой проект является частью того же домена, просто измените конечную страницу, убедитесь, что url-адрес правильный, работает и работает. (Я вижу, вы пытаетесь использовать localhost:port)