2012-05-05 5 views
0

나는 요청을 보내고 결과를 얻는 것처럼 보이는 jquery에이 게시물 요청 코드가 있습니다. (피들러에서 볼 수 있습니다.) 어떻게 든 webapp에서는 오류가 발생하여 빈 경고를 표시합니다. 뭐가 문제 야?게시물 요청에 어떤 문제가 있습니까?

var jqxhr =$.post("http://abhishek:9090/abc/login.action", 
    { emailaddress:  e_add, 
     projectid: p_id }, 
     function(xml) 
     {  
     /*not coming here, goes to error*/ 

      if($(xml).find('isSuccess').text()=="true") 
      { 
      sessiontoken=$(xml).find('sessiontoken').text(); 

      var formMainRef=document.createElement("form"); 
      formMainRef.action="http://abhishek:9090/abc/home.action"; 
      formMainRef.method="post"; 
      formMainRef.target="_self"; 
      formMainRef.id="launch"; 
      document.body.appendChild(formMainRef); 

      var cfgemailField = document.createElement("input"); 
      cfgemailField.name="emailaddress"; 
      cfgemailField.type="hidden"; 
      cfgemailField.value=e_add; 
      formMainRef.appendChild(cfgemailField); 

      var cfgpidField = document.createElement("input"); 
      cfgpidField.name="projectid"; 
      cfgpidField.type="hidden"; 
      cfgpidField.value=p_id; 
      formMainRef.appendChild(cfgpidField); 

      var cfgstField = document.createElement("input"); 
      cfgstField.name="sessiontoken"; 
      cfgstField.type="hidden"; 
      cfgstField.value=sessiontoken; 
      formMainRef.appendChild(cfgstField);         

      setCookie("abcsessionid", sessiontoken , 1); 
      setCookie("abcusername",e_add,1); 

      formMainRef.submit(); 
      } 
     } 
) 
.error(function() { 
    if(jqxhr.responseText == 'INVALID_SESSION') { 
    alert("Your Session has been timed out"); 
    window.location.replace("/abc/view/index.html"); 
    }else { 
    /*comes here, after sending request*/ 
    alert(jqxhr.responseText); 
    } 
}); 

login.action 도메인 포함 작은 XML

<Response> 
    <sessiontoken>4611686352224309486</sessiontoken> 
    <isSuccess>true</isSuccess> 
</Response> 
+0

도메인 이름을 제거하고 $ .post ("/ abc/login.action ", ... – Bryan

+0

@BryanMoyles : 도메인을 포함하여 여기에 문제가 발생합니까? – abi1964

답변

0

에게 반환 인해 브라우저가 차단하는 것 크로스 도메인 요청의 가능성에 문제입니다. 상대 경로를 사용하면 게시 할 스크립트가 로컬 서버에 있으며 잠재적 보안 제한을 무시한다는 사실을 확인하는 것입니다.

+0

시나리오는 http : // ab : 11111/abc'에서 호스팅되는 오래된 webapp입니다. (이것은 C++에서 몇 년 전에 만들어졌다.)이 요청은이 페이지 자체에서 보내졌고, 몇 가지 검사가 완료되었고, webapp의 새로운 버전으로 갈 조건을 만족한다면 (완전히 다른 언어의 자바로 만들어 짐) http : // de : 22222/def' webapp.이게 가능합니까? – abi1964

+0

내 제안은 로컬 스크립트에 게시 한 다음 해당 서버에 백엔드 컬 요청을하는 것입니다. 적절한 내용을 반환합니다. 서버 측 스크립트를 프록시로 사용하면 브라우저 보안 제한을 무시합니다. – Bryan

관련 문제