Проблема с xhr запросами

196
24 мая 2018, 19:50

Есть приложение - asp net core mvc с контроллером api (просто контроллер в котором содержаться post/get методы). Есть фронт, который вызывает эти методы с помощью xmlhttprequest. На локалке (когда разрабатывал и тестил) одинаково работали и get и post методы, после выкладки get методы работают но при вызове post 404 ошибка. При этом из postman'a все работает.

Контроллер выглядит примерно так

[Route("api")]
public class ApiController : Controller 
{
[HttpPost]
[Route("someMethod")]
 public JsonResult Method() { ... } 
}

js код который вызывает данный метод

function DoXhrPostJson(model, url) {
        var result = document.getElementById("container");
        var xhr = new XMLHttpRequest();
        xhr.open("POST", url);
        xhr.setRequestHeader("Content-Type", "application/json");
        xhr.send(JSON.stringify(model));
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4 && xhr.status == 200) {
                AddToResult(xhr.responseText);
            } else {
                result.innerText = xhr.status + ': ' + xhr.statusText;
            }
        }
    }

Url похоже передается валидный, http://some.site.ru/api/testing. При запросе с postman по данному url все ок. Get методы работают без проблем. В чем может быть ошибка?

Cors разрешил так, в StartUp файле в ConfigureServices сделал services.AddCors() Затем в configure { builder.AllowAnyOrigin(); builder.AllowAnyHeader(); builder.AllowAnyMethod(); });

Answer 1

Проблема была в cors, добавил

services.AddCors(options =>
        {
            options.AddPolicy("AllowSpecificOrigin",
                builder => builder.WithOrigins("host"));
        });

и app.UseCors("AllowSpecificOrigin");

READ ALSO
Изменить значение в Json js

Изменить значение в Json js

В data приходит объект абсолютно такой жеИ нужно просто увеличить значение count

199
JS + JQ событие клавиш

JS + JQ событие клавиш

Код регистрирующий событие нажатие клавиши реагирует после однакратного клика на документе

255
Вызов функции через строковый литерал

Вызов функции через строковый литерал

Как я могу вызвать приватные функции, присвоенные локальным переменным функции с передачей аргументов?

210