Как отправить запрос GET из inte rnet explorer в Asp. Net Core API? - PullRequest
1 голос
/ 12 июля 2020

Я разрабатываю Asp. Net Core 3.1 API, все работает должным образом, когда я отправляю запрос GET из Google chrome, Edge, Postman. Но когда я отправляю запрос GET из inte rnet explorer, он начинает загружать файл default.json с содержимым в качестве ответа на запрос GET.

Метод действия по умолчанию:

public IEnumerable<string> Get()
{
    return new string[] { "Welcome" };
}

по умолчанию. json content:

[
    "Welcome"
]

Я ищу по inte rnet, но не могу найти ничего полезного.

FVI , У меня такое же наблюдение, когда я запускаю API с помощью Visual Studio или развернутого API на сервере с использованием IIS.

IE Версия: 11.900.18362.0

Так что у меня есть вопросы.

  1. Не поддерживает ли IE это, это поведение по умолчанию IE?
  2. Если да, то как это можно исправить?

1 Ответ

2 голосов
/ 12 июля 2020

Это IE поведение по умолчанию, и сводится к тому, что просто не знает, как обрабатывать контент с типами mime, такими как */json, поэтому предлагаю загрузку.

Предполагая, что это для пользователей в в общем, и вы просто хотите отобразить данные json в браузере, вы можете преобразовать сторону сервера содержимого в текст.

public ContentResult Get()
{
    var jsondata = new string[] { "Welcome" };
    return Content(JsonSerializer.Serialize(jsondata));
}

Если вы собираетесь что-то сделать с фактическими данными json , что обычно происходит при использовании api, вы будете использовать какой-то сценарий на стороне клиента (например, Ajax, как в примере ниже, или аналогичный), чтобы получить контент, и в этих случаях не будет никаких проблем , как и тот, с которым вы столкнулись.

var xhr = new XMLHttpRequest();
xhr.open('GET', '/api/your-method', true);
xhr.onload = function (e) {
    if (this.status == 200) {
        var jsonstring = this.responseText;
        // do something with the json string, e.g. JSON.parse(jsonstring)
    }
};
xhr.send();

Вот пара сообщений, в которых предлагается изменить реестр, хотя они не будут жизнеспособными, если только это не будет для вашего локального компьютера (и если это так, выберите браузер, который работает должно быть проще) .

Изменить

Как предлагается в комментарии, еще одним вариантом было бы явное изменение типа mime:

...