Javascript ie11中的url编码
早上好。 我正在使用Angular处理MVC项目,并且我使用JsonResult从列表中返回一个Json,该列表包含特定日期的电子邮件 这是我从angular发出的ajax调用Javascript ie11中的url编码,javascript,angularjs,ajax,Javascript,Angularjs,Ajax,早上好。 我正在使用Angular处理MVC项目,并且我使用JsonResult从列表中返回一个Json,该列表包含特定日期的电子邮件 这是我从angular发出的ajax调用 myApp.service('mailService', function ($http) { this.getEmailByDate = function (date) { return $http.get("/Home/ShowEmailByDate/", { params: { date:
myApp.service('mailService', function ($http) {
this.getEmailByDate = function (date) {
return $http.get("/Home/ShowEmailByDate/", { params: { date: date } });
};
});
我的JsonResult在控制器中
public JsonResult ShowEmailByDate(string date)
{
var selectedMsg = ClassHelper.listMsg;
var result = selectedMsg.Select(s => new
{
From = s.From.RawValue,
Date = s.Date.ToString("F"),
searchDate = s.Date.ToString("dd/MM/yyyy"),
sortDate = s.Date.ToString("M"),
sortTime = s.Date.ToString("t"),
Subject = s.Subject,
Body = s.BodyHtml,
Attachments = s.AttachmentFiles.Count(),
Files = s.AttachmentFiles.Select(f => f.FileName)
})
.Where(s => s.searchDate == date)
.OrderByDescending(s => s.sortDate)
.ThenByDescending(s => s.sortTime);
return Json(result, JsonRequestBehavior.AllowGet);
}
现在我的问题只存在于IE中,在chrome和firefox上运行良好。当我执行ajax调用时,我在网络选项卡的开发者模式中看到的链接如下
htttp://localhost:0000/Home/ShowEmailByDate/?date=%E2%80%8E23%E2%80%8E%2F%E2%80%8E12%E2%80%8E%2F%E2%80%8E2015
所以我得到一个空数组结果[]
在Firefox和Chrome中,链接看起来像
htttp://localhost:0000/Home/ShowEmailByDate/?date=22%2F12%2F2015 and its working fine.
日期参数是一个类似于2015年12月22日'dd/M/yyyy'的字符串
有什么想法吗?谢谢 您解码Url,然后使用它。因为在解码IE的所有输出url后,chrome和firefox都是您想要的 使用decodeURI()函数对URI进行解码
var uri=“%E2%80%8E23%E2%80%8E%2F%E2%80%8E12%E2%80%8E%2F%E2%80%8E2015”;
var dec=解码uri(uri);
var res=“解码URI:+dec;
document.getElementById(“demo”).innerHTML=res代码>
我尝试使用decodeURI组件和decodeURI,但没有成功。你能给我一个关于我上面代码的例子吗?当我使用decodeURI解码你的url“%E2%80%8E23%E2%80%8E%2F%E2%80%8E12%E2%80%8E%2F%E2%80%8E2015”时,我得到的结果是chrome和firefox的url,如图23所示%2F12%2F2015请查看演示