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 pom文件依赖管理,未找到依赖
    • ¥15 现在后端返回给我一堆下载地址,都是一个视频切片后的,如何在uniapp安卓环境下将这些分片的视频下周并且合并成原始视频并下载到本地。
    • ¥15 Unity导出2D项目运行时图片变成马赛克
    • ¥15 关于communitytoolkit.mvvm的生成器得到的代码看起来没有被使用的问题
    • ¥15 matlab中此类型的变量不支持使用点进行索引
    • ¥15 咨询第六届工业互联网数据创新大赛原始数据
    • ¥15 Pycharm无法自动补全,识别第三方库函数接收的参数!
    • ¥15 STM32U575 pwm和DMA输出的波形少一段
    • ¥30 android百度地图SDK海量点显示标题
    • ¥15 windows导入environment.yml运行conda env create -f environment_win.yml命令报错