POST 特殊字符通过 json 添加到 MVC

POST special characters to MVC via json

我正在通过 json 向我的控制器发送一个参数,其中包含和号,字符串在该字符后被截断。已经搜索了几个小时,但找不到解决方案。

JavaScript

var url = '/Common/DownloadFile?fileName=Me&You.xlsx';
$.ajax({
    type: 'POST',
    url: url,
    data: {},
    success: function (data) {}
});

控制器

public ActionResult DownloadFile(string fileName)
{
    // Here the param is coming in as 'Me'
    // Code removed for clarity
}

& 符号用于分隔 URL 中的参数。如果您希望 & 符号成为参数值的一部分,您需要 URL 使用 encodeURIComponent() 之类的方法对其进行编码。

在这种特殊情况下,Me&You.xslx 的编码版本将是 Me%26You.xlsx。如果您在 GET 请求中指定您的应用程序应获得预期值。

在urls & 需要转义,因为它用于添加新的参数,如

http://hello.com"?fileName=Something&otherFileName=SomethingElse

您需要像这样对符号进行百分比编码来转义它:

/Common/DownloadFile?fileName=Me%26You.xlsx

这里有更多关于 url 参数转义的信息 escaping ampersand in url