2017-09-12 1 views
0

앰퍼샌드가 포함 된 json을 통해 매개 변수를 내 컨트롤러에 보내고 해당 문자 다음에 문자열이 잘리는 경우 몇 시간 동안 검색 중이며 해결책을 찾을 수 없습니다.json을 통해 MVC에 POST 특수 문자가 있습니다.

자바 스크립트

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

사용 된 서버 측 언어에 대해 자세히 설명해 주시겠습니까? 내 생각 엔. 넷? – jeger

답변

2

:

/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의 인자를 구분하는 데 사용됩니다

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

컨트롤러. 앰퍼샌드를 매개 변수 값의 일부로 사용하려면 encodeURIComponent()와 같은 메서드를 사용하여 앰퍼샌드해야합니다.

이 특정 경우 Me & You.xslx의 인코딩 된 버전은 Me % 26You.xlsx입니다. GET 요청에서 응용 프로그램이 예상 값을 가져와야한다고 지정하면.

http://hello.com"?fileName=Something&otherFileName=SomethingElse 당신은이 같은 퍼센트 인코딩을하여 앰퍼샌드 탈출 할 필요가

같은 새로운 PARAMS을 추가하는 데 사용되기 때문에 탈출 할 필요가 &의 URL에서

관련 문제