2017-09-12 60 views
0

我通過json發送一個參數給我的控制器,該參數包含和符號,字符串被切斷。一直在尋找幾個小時,並找不到解決方案。通過json向MVC發送特殊字符

的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 
} 
+1

你能否提供關於使用的服務器端語言的更多細節?我猜.net? – jeger

回答

2

URL中&需要轉義,因爲它是用來添加新的PARAMS像

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

你需要逃避編碼它百分之這樣的符號:

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

這裏是url參數轉義的更多信息escaping ampersand in url

+0

完美的問題是我在整個url上使用encodeURIComponent(),但它在執行完'code'var url = fileUrl +'?fileName ='encodeURIComponent('Me&You.xlsx')'code' – tqrecords

2

符號被用於在URL分隔參數。如果您希望&符號成爲參數值的一部分,則需要使用像encodeURIComponent()這樣的方法對它進行URL編碼。

在這種特殊情況下,我編碼的版本Me & You.xslx將爲Me%26You.xlsx。如果您在GET請求中指定應用程序應該獲得預期的值。