2011-10-20 1 views
0

"="을 포함하는 쿼리 문자열의 chrome dev 도구에서 전체 검색어 매개 변수를 볼 수 없습니다. "="까지만 표시하고 이후에는 잘립니다.크롬 개발자 도구는 요청 헤더에 "="가 포함 된 경우 양식 데이터를 자르며

방화범이 잘 보여줍니다. 여기에 표시된 ajax 스 니펫에 대한 방화 광구 및 Chrome devtools의 스크린 샷을 찾으십시오.

var qstring = "Hello=Hai"; 

    $.ajax({ 
     type: 'POST' 
     , url: "/cgi-bin/printenv.pl" 
     , data: "query=" + qstring 
     , dataType: 'xml' 
     , timeout: 10000 
     , success: function(jQuerySuccessData){ 
        } 
      }); 

Firebug shows the complete query parameter

Chrome dev tools doesn't show the complete query parameter

이 사용할 수있는 해결 방법이 있습니까?

감사합니다, 나가 키란

답변

1

당신은 =는 예약 문자 그대로 쿼리 문자열을를 urlencode해야합니다. 이 작업을 수행하는 가장 쉬운 방법은 자바 스크립트의 escape 함수입니다. 반대쪽에서도 urldecode를 사용해야합니다.

+0

프로덕션 서버의 ajax 요청을 보는 것처럼 코드를 수정할 수있는 권한이 없습니다. 예 "="는 예약 문자이지만 Firebug는 올바르게 처리합니다. 코드를 수정하지 않고도이를 처리 할 수있는 몇 가지 설정과 같은 크롬 개발 도구의 임시 해결 방법이 있습니까? –

+0

나는 존재하지 않는다고 생각합니다. 왜 그들은 그러한 스위치를 구현해야합니까? Content-Type은'application/x-www-form-urlencoded'이고, 당신은 그 content-type의 문자열을 제공하지 않습니다. 디버그 도구는 원하는대로 자유롭게 할 수 있습니다. – Femaref

0

jQuery Ajax는 기본적으로 contentType : "application/x-www-form-urlencoded"를 사용합니다. 나는이 설정을 오버라이드 (override) 및 "텍스트/일반"는 크롬 DevTools로에서 자바 스크립트 편집을 사용하고는 전체 쿼리 문자열을 보여주는으로 설정 한

   $.ajax({ 
        type: 'POST' 
        , url: (isCLI == false ? this.execUiQuery : this.execCli) 
        , data: qstring 
        , dataType: 'xml' 
        , contentType: 'text/plain' 
        , timeout: 10000 
        }); 

.

관련 문제