Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не срабатывают ссылки в JS функциях на рабочем сервере / 22 сообщений из 22, страница 1 из 1
09.07.2021, 17:34
    #40083083
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
Проект 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
10.07.2021, 14:37
    #40083141
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
Заголовки:

автор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
10.07.2021, 19:06
    #40083164
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
Vlad__i__mir
POST http://localhost/api/API/searchStreets 404 (Not Found) jquery.min.js:2
Че-то не сходится. Что-то ты не договариваешь

Модератор: Тема перенесена из форума "WCF, Web Services, Remoting".
...
Рейтинг: 0 / 0
11.07.2021, 11:17
    #40083199
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
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
11.07.2021, 11:33
    #40083200
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
А как ты добавляешь свои апи-контроллеры к пулу маршрутов? Сами-то они не добавятся. Что у тебя прописано?
...
Рейтинг: 0 / 0
11.07.2021, 13:28
    #40083217
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
Shocker.Pro
А как ты добавляешь свои апи-контроллеры к пулу маршрутов? Сами-то они не добавятся. Что у тебя прописано?


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


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


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

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


Как запустить под релизом в IISExpress? Что нужно проверить?
...
Рейтинг: 0 / 0
11.07.2021, 20:21
    #40083255
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
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
12.07.2021, 15:51
    #40083397
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
Vlad__i__mir,
у тебя есть
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
....................
}
?
...
Рейтинг: 0 / 0
12.07.2021, 17:11
    #40083409
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
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
13.07.2021, 07:09
    #40083486
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
monstrU, но не пойму, что в ConfigureServices нужно добавить?
...
Рейтинг: 0 / 0
13.07.2021, 11:42
    #40083535
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
Решение проблемы найдено, но оно не очень удобное. Для запросов на api-контроллеры в url необходимо ещё добавлять адрес самого приложения, т.е. указывать не автор/api/API/searchStreets, а автор/CollectVoters/api/API/searchStreets. Это не удобно, потому что на тесте и на проде получаются разные url запросов.

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

поставь, чтобы от корня было
...
Рейтинг: 0 / 0
21.07.2021, 10:15
    #40084983
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
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
21.07.2021, 10:50
    #40084991
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
Код: c#
1.
[Route("/api/[controller]")]
...
Рейтинг: 0 / 0
22.07.2021, 10:52
    #40085312
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
Shocker.Pro
Код: c#
1.
[Route("/api/[controller]")]



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



Не помогло, ошибка 404
...
Рейтинг: 0 / 0
22.07.2021, 12:31
    #40085355
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
Короче, изучай настройку маршрутизации, посмотри итоговую коллекцию всех маршрутов после инициализации в Startup-е
...
Рейтинг: 0 / 0
22.07.2021, 22:49
    #40085578
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывают ссылки в JS функциях на рабочем сервере
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
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не срабатывают ссылки в JS функциях на рабочем сервере / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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