EDIT: один из моих коллег только что упомянул, что IE обрабатывает toLocalDateString () отличается от других браузеров ... Похоже, я буду использовать moment.js для решения этой проблемы.Кроме того, этот вопрос является дубликатом, не уверен, должен ли я удалить его или нет.Вот отличный ответ:
ToLocaleDateString () изменения в IE11
Я вижу странное поведение при выполнении запроса GET с angular.Я вижу только эту проблему в IE11;и Chrome и Firefox в порядке.Я отправляю две даты через параметры строки запроса.Я добавляю строку следующим образом:
import { Http, Response, RequestOptions, Headers } from '@angular/http';
....
var date1 = new Date();
var date2 = new Date();
var start = date1.toLocaleDateString();
var end = date2.toLocaleDateString();
var url = '/localhost/someEndPoint?start=' +
start +
'&end=' +
end +
'&value1=' +
data.value1 +
'&value2=' +
data.value2;
return this.http.get(url).
map((response: Response) => <any>response.json())
.publishReplay(1)
.refCount()
.catch(this.handleError);
Когда я проверяю свою сеть, в URL появляются странные символы (не уверен, появятся они здесь или нет)
Request URL: http://localhost:37424/someEndPoint?start=â10â/â9â/â2018&end=â10â/â9â/â2018&value1=-1&value2=-1
Если бы я жестко закодировал эти даты, запрос прошел бы нормально.Что еще более странно для меня, так это то, что это также сработает, если я это сделаю (без жесткого кодирования):
encodeURI(url);
Я уверен, что что-то упустил, но вещи, похоже, указывают на то, что IE делает что-то напуганное.