2014-09-17 8 views
0

내 응용 프로그램의 여러 위치에서 이와 같은 ajax 호출이 있습니다. 이러한 것들에 대한응용 프로그램의 모든 Ajax 호출에 전역 적으로 encodeuricomponent 적용

$.ajax({ 
      type: 'POST', 
      url: url, 
      data: Json.stringify(Values), 
      dataType: 'json' 
     }); 

, 나는 아래와 같이 전송 된 데이터에 encodeURIComponent를 추가하고 싶습니다 :

$.ajax({ 
      type: 'POST', 
      url: url, 
      data: encodeURIComponent(Json.stringify(Values)), 
      dataType: 'json' 
     }); 

내가 수동으로 사방을 편집하지 않고이 전 세계적으로 할 수있는 방법이 있나요?

+1

jQuery는 데이터로 전달하는 모든 내용을 파싱합니다. 왜 URL 인코딩합니까? – adeneo

+0

데이터에 "+"기호가있을 때 올바르게 구문 분석하지 않습니다. "+"는 공백으로 변환됩니다. – suk

+0

'+'는 URL의 공백입니까? – adeneo

답변

0

자신 만의 기능을 만들어보세요.

코드에서 다음
var myAjax = function (options) { 
    if (typeof options.data !== "undefined") { 
    options.data = encodeURIComponent(options.data); 
    } 
    return $.ajax(options); 
}; 

교체 :

$.ajax({ type: 'POST', url: url, data: Json.stringify(Values), dataType: 'json' }); 

으로 :

myAjax({ type: 'POST', url: url, data: Json.stringify(Values), dataType: 'json' }); 

무슨 일이 있어도,하지 원숭이 패치!

+0

내 코드와 관련하여이 기능을 어떻게 사용합니까? – suk

+0

@suk 내 대답을 업데이트했습니다. –

관련 문제