매우 특이한 매개변수 왜곡 문제가 발생했습니다.
페이지를 먼저 살펴보세요
그림과 같이 월별 지표 아래에 동일한 라디오 3개가 있습니다.
세 개의 라디오 아래에는 iframe이 있습니다.
클릭하면 매개변수가 있는 웹페이지 주소가 전달됩니다.
(1) "Daily Indicator"와 "Monthly Indicator"를 전환할 때 전달한 매개변수가 한자이기 때문에 백그라운드에서 잘못된 문자로 얻어지는 문제가 발생했습니다.
그래서. 인코딩 인코딩, 백그라운드 UrlDecode 디코딩 등의 매개변수를 설정했는데 코드가 여전히 깨져서 실망했습니다.
그러다가 페이지 인코딩을 꼼꼼히 확인해 보니 iframe에서 열리는 페이지가 인코딩되지 않은 것을 발견했습니다.
다음 문장을 페이지에 추가하세요
이제 괜찮은 것 같습니다. " Daily Indicators" 및 " "Monthly Indicators" 웹페이지는 정상적으로 표시될 수 있으며 매개변수도 전달됩니다.
(2) 그런데 변태적인 문제가 발생했습니다. 라디오를 전환했더니 오류가 보고되고 매개변수가 깨졌습니다.
이번에는 정말 뭐가 문제인지 모르겠습니다. "Daily Indicators", "Monthly Indicators" 그리고 라디오에서 페이지를 전환하기 위해 클릭하는 JS 방식은 동일한 JS 방식을 사용합니다.
우울할 때 뒤적거리다가 다음과 같은 것을 발견했습니다.
'석탄층 메탄'을 클릭하면 페이지가 정상이었는데, '석유 생산'을 클릭하면 '매개변수가 잘못되었습니다'를 클릭했습니다. 석유 생산이 이미 선택되어 있으면 다시 석유 생산'을 선택합니다. , 페이지가 정상적으로 표시됩니다
이렇게 되면 안 된다고 상상해 보세요
그리고 '석탄층 메탄'과 '석유 생산'을 비교했습니다. "를 넣었습니다. 공식 페이지에는 '석유 생산' 모듈이 있지만 '석탄층 메탄' 모듈은 아직 구축되지 않았습니다. 무작위로 Baidu 페이지를 걸어 놓습니다. (1)번의 인코딩 문제로 인해 가장 먼저 생각난 것이 바로 바이두 인코딩 문제였습니다.
🎜>
인코딩 형식이 다릅니다. 그래서 '석유 생산' 페이지에 '석탄층 메탄'을 넣고 바이두도 삭제했습니다.
글쎄요, 페이지는 정상적으로 실행되고 있고 매개변수도 더 이상 깨지지 않습니다.
이유 분석
: 매개변수 전달 시 얻어지는 것은 현재 iframe 표시 페이지의 인코딩인 것으로 보이며, 이는 열려는 페이지의 인코딩과는 아무런 관련이 없습니다. . 하지만 실제로는 그렇지 않습니다. iframe에 URL을 할당하고 iframe의 상위 페이지에 매개변수를 전달합니다.