weixin_33736649 2015-12-23 07:25 采纳率: 0%
浏览 31

IE 11中的url编码

Goodmorning. Im working on MVC project with Angular and im using a JsonResult to return a Json from a list that i have with emails with the specific date.

Here is my ajax call from angular

myApp.service('mailService', function ($http) {
    this.getEmailByDate = function (date) {
        return $http.get("/Home/ShowEmailByDate/", { params: { date: date } });
    };
}); 

My JsonResult in Controller

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);
}   

Now the problem that i have exists only in IE. On chrome and firefox is working fine. The link that i see in developer mode in Network tab when i execute the ajax call is like

htttp://localhost:0000/Home/ShowEmailByDate/?date=%E2%80%8E23%E2%80%8E%2F%E2%80%8E12%E2%80%8E%2F%E2%80%8E2015     

So im getting an empty array result []

In Firefox and Chrome the link looks like

htttp://localhost:0000/Home/ShowEmailByDate/?date=22%2F12%2F2015 and its working fine.

the date param is a string like 22/12/2015 'dd/M/yyyy'

Any ideas? Thanks!

  • 写回答

1条回答 默认 最新

  • Memor.の 2015-12-23 08:30
    关注

    You decode Url and then use it. because after decoding all output url of IE, chrome and firefox are same as you want.

    Use decodeURI() function to decode a URI.

    var uri = "%E2%80%8E23%E2%80%8E%2F%E2%80%8E12%E2%80%8E%2F%E2%80%8E2015";
    var dec = decodeURI(uri);
    var res = "Decoded URI: " + dec;
    document.getElementById("demo").innerHTML = res;
    <p id="demo"></p>

    </div>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 Abaqus打不开cae文件怎么办?
  • ¥20 双系统开机引导中windows系统消失问题?
  • ¥15 小程序准备上线,软件开发公司需要提供哪些资料给甲方
  • ¥15 关于生产日期批次退货退款,库存回退的问题
  • ¥15 手机应用的时间可以修改吗
  • ¥15 docker 运行OPEN-webui异常
  • ¥15 麒麟系统如何删除光盘刻录痕迹
  • ¥15 recipe通过gem协议传的是什么
  • ¥15 TS2307: Cannot find module 'cc'.
  • ¥15 100小时学会sap 书上pp章节5.22,标准成本计算逻辑?