2012-01-27 6 views
7

IE에서 HTTPS Ajax 호출과 관련하여 문제가 발생했습니다. IE는 내가 크로스 도메인 요청을한다고 생각하는 것 같지만 그렇지 않습니다. 다음 코드는 페이지 https://mydomain/customer_profile.php에서 호출 :IE (Crossdomain이 아님)에서 HTTPS Ajax 요청과 관련된 문제

$.ajax({ 
    type: 'post', 
    url: 'https://mydomain/ajax/retrieve_transaction_details.php', 
    data: /* my data is here */, 
    success: function(response){ 
     // do something with the response 
    }, 
    error: function (xhr, ajaxOptions, thrownError){ 
     alert(xhr.status); 
     alert(thrownError); 
    } 
}); 

이 요청은 IE를 제외한 모든 브라우저에서 잘 작동합니다. IE에서 오류 함수는 "오류 : 액세스가 거부되었습니다"를 반환합니다. 내가 말했듯이, 나는 이것에 완전히 난처한 입장입니다. 그래서 어떤 통찰력이나 생각도 훌륭합니다. 이 같은 요청에 true로 교차 도메인을 설정

+1

'https : // mydomain'없이 사용해보십시오. URL을 "/ajax/retrieve_transaction_details.php"로 시도하십시오. –

+0

나는 이것을 시도했다. 어떤 이유로 든 절대 경로를 지정하지 않으면 다른 브라우저가 HTTP를 통해 요청을 시도하므로 해당 브라우저도이를 중단합니다. –

+0

아마 IE가 호환성을 위해 사용하고 다른 브라우저를 사용하는 경우 이미 작동하고있는 코드로 전달하면 경로를 따라갈 브라우저에 대한 확인을 추가하십시오. – HenryGuy

답변

3

나는 당신이 당신의 HTML의 머리 섹션 내부의 <base> 태그를 사용하는 것 같아요; 권리?

http 대신 https를 가리키는 경우, 그 IE을 깰 것이다.

+0

와우, 그게 사실 일 것입니다. 내 헤더 템플릿에 그 태그를 던진 것을 완전히 잊어 버렸습니다. 재밌 네요, IE에서 깨졌을 뿐이에요. IE 용이라고 생각합니다. 감사! –

2

시도 :

$.ajax({ 
    type: 'post', 
    url: 'https://mydomain/ajax/retrieve_transaction_details.php', 
    data: /* my data is here */, 
    crossDomain: true, 
    success: function(response){ 
     // do something with the response 
    }, 
    error: function (xhr, ajaxOptions, thrownError){ 
     alert(xhr.status); 
     alert(thrownError); 
    } 
}); 

이 당신이 상관없이 크로스 도메인 여부의 요청을 할 수 있도록해야한다.

+0

흠, 오류가 "전송 없음"으로 변경되었습니다. 흥미 롭 군. –

+0

이 게시물을 한번보세요 : http://stackoverflow.com/questions/5241088/jquery-call-to-webservice-returns-no-transport-error –

관련 문제