powered by simpleCommunicator - 2.0.34     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не срабатывают ссылки в JS функциях на рабочем сервере
22 сообщений из 22, страница 1 из 1
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083083
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проект ASP NET CORE MVC 3. Сервер IIS10.

В проекте в файлах представлениях я прописывал ссылки на файлы с JS функциями следующем образом:
Код: javascript
1.
2.
3.
4.
5.
@section Scripts {

    <script type="text/javascript" src="~/js/JS_Create_Edit_Friend.js"></script>
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}



В самом файле прописывал:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
// Обновление списка улиц после выбора города
$(function () {
    $("#CityId").change(function () {
        var formData = { 'CityId': Number.parseInt($('#CityId').val()), 'Name': $('#CityId>option:selected').text() };
        $.ajax({
           // url: "http://localhost:18246/api/API/searchStreets",
            url: "/api/API/searchStreets",
            headers:
            {
                'Accept': 'application/json',
                'Content-Type': 'application/json',
                'RequestVerificationToken': $('#RequestVerificationToken').val()
            },
            type: 'POST',
            dataType: "json",
            data: JSON.stringify(formData),
            success: function (data) {

                dataFilling(data, 'idStreet', 'name', '#StreetId', '<option/>');

                // Генерация события для элемента Select
                let elemSelectHouse = document.querySelector('#StreetId')
                elemSelectHouse.selectedIndex = 0;
                const event = new Event("change");
                elemSelectHouse.dispatchEvent(event);
            },
            error: function (result, status, er) {
                alert("error: " + result + " status: " + status + " er:" + er);
            }
        });

    });    
});



На тесте все работает на проде выдает ошибку, что не найден:
авторPOST http://localhost/api/API/searchStreets 404 (Not Found) jquery.min.js:2
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083141
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заголовки:

авторGeneral
Request URL: http://195.226.xxx.x0/api/API/searchStreets
Request Method: POST
Status Code: 404 Not Found
Remote Address: 195.226.xxx.x0:80
Referrer Policy: strict-origin-when-cross-origin

авторRequest
Accept: application/json
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 42
Content-Type: application/json
Host:195.226.xxx.x0
Origin: http://195.226.xxx.x0
Pragma: no-cache
Referer: http://195.226.xxx.x0/collectVoters/Friends/Edit/2
RequestVerificationToken: CfDJ8E_6DbN7jdpPgMFyLYN6J0OrMxQS9aM7M67rVqjwjxa4AwxAWpaCKSmX Lo3SUhxhSOxaDNbIonsGVHeh5STS0Q0U0bq6R-dPdWyohdIlwBaNRRVJ5iw8t2U2sulQfFdcegAl-A54L3H0vxaMu_-jl7Zmc9TNII1R3lXPErLRDcvpzKZdf1fPkqgmPH_wSb5o_w
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
X-Requested-With: XMLHttpRequest

Контроллер обрабатывающий запрос от данной JS функции:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
[Route("api/[controller]")]
    [ApiController]
    [Produces("application/json")]
    public class APIController : ControllerBase
    {
        private readonly VoterCollectorContext _context;
 
        public APIController(VoterCollectorContext context)
        {
            _context = context;
        }
 
 
        [HttpPost("searchStreets")]
        [ValidateAntiForgeryToken]
        public IActionResult SearchStreets(CityDTO citySelected)
        {
            List<Street> streets =  _context.Street.Where(s => s.CityId == citySelected.CityId).ToList<Street>();
            
            if (streets.Any())
            {
                List<StreetDTO> streetsDTO = streets.Select(s => new StreetDTO { IdStreet = s.IdStreet, Name = s.Name }).ToList();
                return Ok(streetsDTO);                
            }
            return NoContent();
        }
}
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083164
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
POST http://localhost/api/API/searchStreets 404 (Not Found) jquery.min.js:2
Че-то не сходится. Что-то ты не договариваешь

Модератор: Тема перенесена из форума "WCF, Web Services, Remoting".
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083199
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Vlad__i__mir
POST http://localhost/api/API/searchStreets 404 (Not Found) jquery.min.js:2
Че-то не сходится. Что-то ты не договариваешь

Модератор: Тема перенесена из форума "WCF, Web Services, Remoting".


Это потому что первый раз я тестировал на работе на самом серваке, а потом уже из дома по внешнему ip-адресу, но суть таже самая, он что с самого сервака (localhost), что по внешнему ip выдает одинаковые ошибки - 404 на все ip-контроллеры, а вот mvc контроллеры работают нормально - грузят представления.

Представления отображаются с помощью контроллеров mvc, приложения так-то mvc, и везде где задействованы mvc контроллеры - работает, но часть у меня работает через api контроллеры, функции JS у меня отправляют запрос на api контроллеры, пример такой JS-функции и такого ip-контроллера привел в вопросе.
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083200
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как ты добавляешь свои апи-контроллеры к пулу маршрутов? Сами-то они не добавятся. Что у тебя прописано?
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083217
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
А как ты добавляешь свои апи-контроллеры к пулу маршрутов? Сами-то они не добавятся. Что у тебя прописано?


На тесте я ничего не добавлял, все работало норм. А как добавить свои апи-контроллеры к пулу маршрутов?
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083229
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
На тесте
Что это означает?
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083235
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Vlad__i__mir
На тесте
Что это означает?


На IISExpress при запуске в VS
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083243
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так ты запускал из VS в режиме DEBUG в Development. Ищи разницу конфигурации с релизом. Запусти под релизом в IISExpress, проверь
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083247
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Ищи разницу конфигурации с релизом.


Где её искать, в каком файле?

Shocker.Pro
Запусти под релизом в IISExpress, проверь


Как запустить под релизом в IISExpress? Что нужно проверить?
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083255
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
В Startup.cs нашел следующие настройки:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
   public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseHttpsRedirection();

            app.UseStaticFiles();

            app.UseRouting();
          
            app.UseAuthentication();
           
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }


Вы их имели ввиду, когда говорили авторА как ты добавляешь свои апи-контроллеры к пулу маршрутов? Сами-то они не добавятся. Что у тебя прописано??
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083397
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir,
у тебя есть
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
....................
}
?
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083409
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
monstrU
Vlad__i__mir,
у тебя есть
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
....................
}
?


Да, есть, вот он:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
public void ConfigureServices(IServiceCollection services)
        {
            //Add
            // установка конфигурации подключения
            services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
                .AddCookie(options => //CookieAuthenticationOptions
                {
                    options.LoginPath = new Microsoft.AspNetCore.Http.PathString("/Account/login");
                    options.AccessDeniedPath = new Microsoft.AspNetCore.Http.PathString("/Account/login");
                });
            //Add
            services.AddDbContext<VoterCollectorContext>();

            services.AddControllersWithViews();
            //Add
            services.Configure<IdentityOptions>(options =>
            {
                // Password settings.
                options.Password.RequireDigit = true;
                options.Password.RequireLowercase = true;
                options.Password.RequireNonAlphanumeric = true;
                options.Password.RequireUppercase = true;
                options.Password.RequiredLength = 8;
                options.Password.RequiredUniqueChars = 1;

                // Lockout settings.
                options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(10);
                options.Lockout.MaxFailedAccessAttempts = 7;
                options.Lockout.AllowedForNewUsers = true;

                // User settings.
                options.User.AllowedUserNameCharacters =
                "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
                options.User.RequireUniqueEmail = false;
            });

            //Add
            services.AddControllers().AddNewtonsoftJson();
        }
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083486
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
monstrU, но не пойму, что в ConfigureServices нужно добавить?
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083535
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решение проблемы найдено, но оно не очень удобное. Для запросов на api-контроллеры в url необходимо ещё добавлять адрес самого приложения, т.е. указывать не автор/api/API/searchStreets, а автор/CollectVoters/api/API/searchStreets. Это не удобно, потому что на тесте и на проде получаются разные url запросов.

Может кто-нибудь знает как это можно настроить?
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40083578
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Код: c#
1.
[Route("api/[controller]")]

поставь, чтобы от корня было
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40084983
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Vlad__i__mir
Код: c#
1.
[Route("api/[controller]")]

поставь, чтобы от корня было


У меня так и стоит Vlad__i__mir[Route("api/[controller]")]
[ApiController]
[Produces("application/json")]
public class APIController : ControllerBase
{
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40084991
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
[Route("/api/[controller]")]
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40085312
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Код: c#
1.
[Route("/api/[controller]")]



Не заметил ) Спасибо!
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40085353
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Код: c#
1.
[Route("/api/[controller]")]



Не помогло, ошибка 404
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40085355
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, изучай настройку маршрутизации, посмотри итоговую коллекцию всех маршрутов после инициализации в Startup-е
...
Рейтинг: 0 / 0
Не срабатывают ссылки в JS функциях на рабочем сервере
    #40085578
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Короче, изучай настройку маршрутизации, посмотри итоговую коллекцию всех маршрутов после инициализации в Startup-е


В Startup-e у меня прописаны только точки входа и шаблон маршрутов, что тут ещё можно увидеть?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
 public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            //Add
            // установка конфигурации подключения
            services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
                .AddCookie(options => //CookieAuthenticationOptions
                {
                    options.LoginPath = new Microsoft.AspNetCore.Http.PathString("/Account/login");
                    options.AccessDeniedPath = new Microsoft.AspNetCore.Http.PathString("/Account/login");
                });
            //Add
            services.AddDbContext<VoterCollectorContext>();

            services.AddControllersWithViews();
            //Add
            services.Configure<IdentityOptions>(options =>
            {
                // Password settings.
                options.Password.RequireDigit = true;
                options.Password.RequireLowercase = true;
                options.Password.RequireNonAlphanumeric = true;
                options.Password.RequireUppercase = true;
                options.Password.RequiredLength = 8;
                options.Password.RequiredUniqueChars = 1;

                // Lockout settings.
                options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(10);
                options.Lockout.MaxFailedAccessAttempts = 7;
                options.Lockout.AllowedForNewUsers = true;

                // User settings.
                options.User.AllowedUserNameCharacters =
                "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
                options.User.RequireUniqueEmail = false;
            });

            //Add
            services.AddControllers().AddNewtonsoftJson();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }
            //Add
            app.UseHttpsRedirection();

            app.UseStaticFiles();

            app.UseRouting();
        
            app.UseAuthentication();
           
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }
    }
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не срабатывают ссылки в JS функциях на рабочем сервере
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]