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>
    
    评论

报告相同问题?

悬赏问题

  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格