2017-09-12 1 views
0

Ich sende einen Parameter zu meinem Controller über JSON, die und kaufmännisches und die Zeichenfolge wird nach diesem Zeichen abgeschnitten. Seit Stunden gesucht und kann keine Lösung finden.POST Sonderzeichen zu MVC über JSON

JavaScript

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

-Controller

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

Können Sie bitte weitere Details zur verwendeten serverseitigen Sprache angeben? Ich schätze .net? – jeger

Antwort

2

In Urls & entkommen werden muss, weil es neue params wie

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

Sie müssen hinzufügen verwendet wird, um den Ampersand percent Codierung es so entkommen:

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

Hier finden Sie weitere Informationen zum URL-Parameter Escape escaping ampersand in url

+0

Perfekt, Problem war, dass ich encodeURIComponent() um die gesamte URL verwendet habe, aber es funktionierte, nachdem ich 'code'var url = fileUrl + 'gemacht hatte? FileName =' + encodeURIComponent ('Me & You.xlsx')' code' – tqrecords

2

Die Ampersand verwendet Argumente in einer URL zu trennen. Wenn Sie möchten, dass das kaufmännische Und-Zeichen Teil eines Parameterwerts ist, müssen Sie es mithilfe einer Methode wie encodeURIComponent() URL-codieren.

In diesem speziellen Fall wäre die codierte Version von Me & You.xslx Me% 26You.xlsx. Wenn Sie angeben, dass Ihre Anwendung in der GET-Anforderung den erwarteten Wert erhalten soll.