2012-10-16 2 views
1

IE에서 ajax 요청을 지원하기 위해 jQuery.XDomainRequest.js (https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest)를 사용하고 있습니다.IE 8+ XDomainRequest 'post'가 작동하지 않습니다.

내 GET 요청에 잘 작동하지만 POST가 작동하지 않으면 500을 반환합니다. (다른 브라우저에서도 작동하므로 XDR 특정 문제가 발생 함). 이 XDomainRequest 내 첫번째 만남이다, 나는 내 자신의 몇 가지 조사를했다,하지만 난이 실패한 이유 단서가 없다

var contact = {}; 
contact.firstName = "ABC"; 

jQuery.ajax({ 
    type: 'POST', 
    url: contactDetailsUrl, 
    data: contact, 
    dataType: 'json', 
    success: function(data) { 
       callback(true); 
       }, 
    error: function(data) { 
       alert('Currently having trouble posting.'); 
       callback(false); 
      } 
}); 

: 같은

내 아약스 호출 보인다.

미리 도움을 주셔서 감사합니다.

편집 : 일부 디버깅을 수행했습니다.

내 테스트 URL = "HTTP : /myserver/test/index.php 키 = 123"(이 크로스 도메인 요청을)

내가 인쇄로 json_encode ($ _ GET), 내가 얻을 : { " key ":"123 "} json_encodee ($ _ POST)가 인쇄되었습니다. [].

분명히 내 게시물 데이터가 전송되지 않습니다. ,

header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); 
header('Access-Control-Max-Age: 1000'); 
header('Access-Control-Allow-Headers: Content-Type'); 

답변

1

확인 : 같은 PHP 코드 모양의

"firstName=ABC" 

내 헤더 :

xdr.send(postData); 

postData를 같은 일도 같습니다

이 내 데이터를 전송 라인 그래서 PHP 지식은 내 XDR 지식보다 나쁩니다.

아래 링크는 내가 $ HTTP_RAW_POST_DATA 대신 $ _POST를 사용할 필요가

http://social.msdn.microsoft.com/Forums/eu/iewebdevelopment/thread/fe1570a0-8670-450d-90e6-1e03bd338569

을 도왔다.

나는이 질문에 비틀 거린 나 같은 누군가가있을 때만 질문을 떠날 것이다.

+0

XDR에만 텍스트/일반을 보낼 수 있습니다, 그 문제는 다시 MSIE와 이유 ...입니다 , 아니 당신의 PHP 지식 ... – inf3rno

+0

이 하나 정말 많은 도움이! 감사 –

1

php에 당신을 위해 일해야합니다

echo file_get_contents('php://input'); 

$_POST로 사용하려면 :

$_POST=json_decode(file_get_contents('php://input'), true); 
관련 문제