Я пытаюсь получить доступ к веб-сервису, который я написал на C #.Я получаю к нему доступ через Typescript и fetch-api.Доступ работает безупречно в Chrome и Firefox, но в Edge - нет.Я пробовал это с POST и GET, и оба терпят неудачу в Edge.
Typescript / js / html запускается локально с диска!Таким образом, поле адреса моего браузера выглядит примерно так: file: /// C: /Users/.../WebServiceConsumer/view/index.html
Typescriptметод доступа к веб-сервису выглядит следующим образом
getData(url:string, token?:string): Promise<any>{
let headers:Headers = new Headers({"Content-Type": "application/json"});
if (token) {
headers.set("Authorization", 'Bearer '+ token);
}
return fetch(url, {
method: "GET", // *GET, POST, PUT, DELETE, etc.
mode: "cors", // no-cors, cors, *same-origin
cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached
credentials: "same-origin", // include, *same-origin, omit
headers: headers,
redirect: "follow", // manual, *follow, error
referrer: "no-referrer", // no-referrer, *client
})
.then(response => response.json()
.then(json => {return json}))
.catch(error => console.log('error:', error));; // parses response to JSON
}
метод, к которому я пытаюсь получить доступ, выглядит следующим образом
public class SearchController : ApiController
{
[HttpGet]
[Route("api/v1/Search/Test")]
public IHttpActionResult Get()
{
return Ok("OK");
}
}
Я установил политику CORS в своем коде C # через
res.Headers.Set("Access-Control-Allow-Origin", "*");
Ошибка, которую я получаю и записываю на консоль, выглядит следующим образом
Я понятия не имею, как решить эту проблему.Что делает Edge, чего не делает Chrome?Как я могу получить доступ к своему веб-сервису из Edge?
FYI
- Веб-сервис - это отдельное приложение на C # с Owin
- Access from "file: /// ... "является обязательным для этого проекта