2013-09-26 2 views
0

프로필 결과가 도메인 간 게시 중이며 브라우저가 처리 기능을 중단시키는 게시물의 @ 기호를 인코딩합니다. 값과 @ 기호를 디코딩하는 서버 측 처리 스크립트에 액세스 할 수 없습니다.브라우저에서 아약스 게시물을 다르게 인코딩하도록합니다.

내 질문 : 브라우저가 @ 매개 변수를 게시 매개 변수로 인코딩하지 않도록 할 수있는 방법이 있습니까? 아니면 처리 스크립트가 받아 들일 수있는 곳을 다르게 인코딩 할 수있는 방법이 있습니까?

포스트 유모차 : USEREMAIL = 이름 % 40domain.com & WorkPhone = 1-800-000-000 & 모바일 폰 = 000-000-000 & homePhone를 = 000-000-0000 &에서 EmailAddress = 이름 %의 40domain. COM & ClientNumber = 00000 & 우편 번호 = 00000 & StreetAddress = 000 + & 시티 = 일부 도시 & 주 = + 61 & 성 = 이름 & Clientcomments =이 +이다 + A + 설명 + + SA 콜로라도 & FIRSTNAME = 테스트 + 버전을 steet +해야합니다. +

jQuery를 AJAX는 :

$.post(
    "https://secure.domain.com/Import.aspx?Provider=1&Client=2&CampaignId=1032&DirectTransfer=true", 
    { UserEmail: '[email protected]', WorkPhone: data.WorkPhone, MobilePhone: 
     data.CellPhone, HomePhone: data.MainPhone, EmailAddress: '[email protected]', 
     ClientNumber: data.ClientNumber, Zip: data.MainZipCode, StreetAddress: 
     data.MainStreetAddress, City: 
     data.MainCity, State: data.MainState, FirstName: data.FirstName, LastName: 
     data.LastName, Clientcomments: data.Discription 
    }, 
    function(rdata) { 
     console.log(rdata) 
    }, 
'script'); 

답변

0

$ .post 정말 그렇게 대신 $ 아약스를 사용하여 응용 프로그램/JSON과 같은 콘텐츠 형식을 지정 $ 아약스에 대한 바로 가기입니다.

$.ajax({ 
     url: 'https://whatever.com', 
     contentType: 'application/json', 
     dataType: 'json', 
     data: '{"name": "value"}', 
     type: 'POST', 
     success: function(data, textStatus, jqXHR){ 

      }, 
     error: function(XMLHttpRequest, textStatus, errorThrown){ 

      } 
     }); 
}); 
+0

게시 params보다는 JSON을 게시하고 싶다고 가정하면 ... –

+0

나는 그렇지 않습니다. 그게 작동하지 않았다 ... – Cybervanes

+0

그 경우에는 processData : false를 사용하십시오. 이렇게하면 데이터가 인코딩되지 않습니다. processData를 사용할 때 데이터는 문자열이어야하므로 JSON.stringify()를 사용하여 json 객체를 직렬화합니다. –

관련 문제