2011-03-30 4 views
1

내가 드루팔/PHP로 jQuery를에서 사용자 정의 XML 데이터를 전송하고 있습니다 :정지 자동 URL 디코딩은

$.ajax({ 
      type: 'POST',  
      url: this.href, 

      success: function(data){ 

       alert('Form is successfully saved'); 


      }, 
      error:function(XMLHttpRequest, textStatus, errorThrown){ 
       alert("Error"); 

      }, 

      data: 'myxml='+ mydata 
     }); 

내 XML 태그 URL을 포함, 그래서 나는 그들을 인코딩하고, 전에 AJAX를 만들기 나는 수신 된 데이터를 얻을, 다음과 같이 내가 저장 PHP에서,

mydata="<txtLinkLocation>http%3A%2F%2Fportal.cubewerx.com%2Fcubewerx%2Fcubeserv%2Fcubeserv.cgi%3FCONFIG%3Dhaiti%26SERVICE%3DWFS%26DATASTORE%3DOSM%26request%3DGetCapabilities</txtLinkLocation>"; 

을 그리고 : 데이터를 다음과 같이 약간 보이는, 전화

$receivedXML = $_POST['myxml']; 

지금, $ receivedXML의 포함은 다음과 같습니다

<txtLinkLocation>http://portal.cubewerx.com/cubewerx/cubeserv/cubeserv.cgi?CONFIG=haiti&SERVICE=WFS&DATASTORE=OSM&request=GetCapabilities</txtLinkLocation> 

이 문자열 내부 URL이 자동으로 디코딩하는 이유 나의 질문은? 왜 이런 일이 일어나는 걸까요? AJAX 호출을 통해 전송되는 데이터에 대해 자동 작업을 수행하고 싶지 않습니다. 이 행동을 멈추는 방법? 여기에 몇 가지 기본 개념이 누락 된 것 같습니다 ...

답변

2

$ _POST 데이터는 $ _GET와 같은 방식으로 서버에 보내집니다. 그것은 urlencoded 보내 져야한다. 이것은 기본적으로 PHP가 데이터 인코딩을 기대하기 때문에 urlencode를 디코딩한다는 것을 의미합니다.