jQuery의 $.ajax URL 인코딩 문제
저는 REST 서비스에 데이터를 보내고 검색하기 위해 jQuery의 $.ajax 방법을 사용하고 있습니다.$.ajax 메서드에 제공하는 URL 중 일부는 공백과 기타 특수 문자를 인코딩해야 합니다.
문제는 Chrome, Safari(웹킷), Internet Explorer 브라우저에 있습니다.Firefox POST는 인코딩된 URL에 있지만 다른 브라우저는 인코딩되지 않은 URL에 게시합니다.
예를 들어 다음과 같습니다.
$.ajax ({
url: "http://localhost:8080/rest/123/Product Line A/[Product Type B]",
type: "POST",
dataType: "json",
data: { ... },
success: function(...){},
error: function(...){}
})
Firefox는 다음 형식으로 URL을 게시합니다.
http://localhost:8080/rest/123/Product%20Line%20A/%5BProduct%20Type%20B%5D
Chrome, Safari, IE는 다음과 같은 형식으로 URL을 게시합니다.
http://localhost:8080/rest/123/Product Line A/[Product Type B]
REST 서비스에서는 인코딩된 (Firefox) 형식을 사용할 수 있습니다. 모든 브라우저에서 일관성을 유지할 수 있는 방법이 있습니까?
미리 감사드립니다!
자바스크립트의encodeURI()
URL을 "Firefox 형식"으로 인코딩하는 기능을 사용합니다.
합격[Product Type B]
인코딩되지 않은 형태는 유효하지 않으므로 브라우저에서 무엇을 만들 것인지 정의되지 않습니다.
제품 타입 부분에 대해 a를 합니다.
.serialize()가 jquery한 방법이 될 것 같습니다.
여기서 확인하기: http://api.jquery.com/serialize/
jquery: http://plugins.jquery.com/project/URLEncode 을 위한 플러그인도 있습니다.
아니면 자바스크립트 방식으로...부호화하다URI 구성요소()
여기서 확인하기: http://www.w3schools.com/jsref/jsref_encodeURI.asp
빠른 해결책은encodeURI()
$.ajax로 전달되기 전의 URL.$.ajax 함수를 얇은 포장지로 대체하여 {} 리터럴을 사용하고 인코딩할 수도 있습니다.원래 함수로 전달하기 전에 URL을 URI.
언급URL : https://stackoverflow.com/questions/4485808/jquerys-ajax-url-encoding-problems
'programing' 카테고리의 다른 글
커널은 리눅스에서 실행 가능한 바이너리 파일을 어떻게 얻습니까? (0) | 2023.10.26 |
---|---|
CSS 배경 이미지를 너비에 맞게 조정하고 높이를 비례하여 자동으로 조정해야 함 (0) | 2023.10.26 |
RecyclerView 항목이 나타날 때 해당 항목을 애니메이션화하는 방법 (0) | 2023.10.26 |
WooCommerce 무료배송 라벨 맞춤 기능 (0) | 2023.10.26 |
C 스트링에서 첫 번째 캐릭터를 제거하는 방법? (0) | 2023.10.26 |