2012-07-10 1 views
0

아래 Microsoft 표준, var openRetVal 및 var sendRetVal에 따라 변수를 추가했습니다. 이상한 점은 아무것도 반환하지 않는다는 것입니다. 그렇다면 Microsoft는 자체 문서에 거짓말을 했습니까?Internet Explorer CrossDomain 요청이 올바르게 작동하지 않고 MS가 오류 추론을하지 않습니다.

나는 ajax 요청을하고 있었고 평소와 마찬가지로 IE는 작동하기 어려운 표본이다. 나는 AJAX 요청을하는 대신 XDR을 할 수 있음을 알았다. 크롬의 코드가 작동하므로 대상 서버가 작동 중이고 요청이 성공하면 어떤 일이 일어날 지 알 수 있습니다. 아래는 XDR에 대한 내 코드 세그먼트입니다.

if ($.browser.msie && window.XDomainRequest) { 
      var xdr = new XDomainRequest(); 
      //var webstring = location.protocol +"//"+ location.host +"/" + WEBSERVICE_URL + "/test"; 
      //WEBSERVICE_URL = "webservices/FormDesigner.svc"; 
      var webstring = WEBSERVICE_URL + "/test"; 
      var openRetVal = xdr.open("GET", webstring); //added this var as it supposidly gets a return value from the function call. 
      xdr.onload = function() { 
       var JSON = $.parseJSON(xdr.responseText); 
       if (JSON == null || typeof (JSON) == 'undefined') { 
        JSON = $.parseJSON(data.firstChild.textContent); 
       } 
       //below is my onsuccess call which is called by both successes for IE and NON-IE processes allowing all stuff to be piped into 1 call. 
       ajax_success(JSON); 
      }; 
      xdr.ontimeout = function() { 
       alert("XDR Error. Timeout"); 
      } 
      xdr.onerror = function() { 
       alert("XDR Error. Unable to do a Cross Domain Server Request."); 
      }; 
      var sentRetVal = xdr.send(); //added this var as the function is suppose to return success or error as per microsoft. 

     } 

항상 자연히 목표로하고있는 것이 아닌 오류를 반환합니다. 나는 다른 도메인이없는 이유 인 테스트 목적으로 현재 같은 도메인 내에서 무언가를 핑 (ping)하고 있습니다. 내가 말했듯이, 지금까지 다른 브라우저에서 작동합니다 ... 부적절한 서식이 있습니까? 이 테스트 요청에는 제출 된 데이터가 없습니다.

+1

'$ .browser.msie'? '$ .parseJSON'? jQuery를 사용하고 있다면 왜 jQuery가 CORS를 처리하도록하지 않습니까? – Quentin

+0

그 정보는 부분적으로 데모에서 얻은 것입니다. IE 이외의 물건에 대한 jQuery를 사용하고 있지만 jquery 등을 사용하여 XDR 개체를 처리하는 방법을 알지 못했습니다. – Fallenreaper

답변

3

당신이 jQuery를, 그냥 모든 브라우저 위해 jQuery를 사용하여 이미가있는 경우에, 당신은 IE에서 문제가 없어야합니다.

+0

$ .ajax was working, 그리고 IE와 함께 아약스를 할 수 없다면 블로그가 있습니다. 현재 broswer가 IE 인 경우 대신 XDR을 사용하십시오. 블로그는 다음과 같습니다 : http://www.cypressnorth.com/blog/programming/cross-domain-ajax-request-with-json-response-for-iefirefoxchrome-safari-jquery/ – Fallenreaper

관련 문제