2012-05-05 4 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

сценарий У меня есть старый webapp, размещенный на' http: // ab: 11111/abc' (который был создан много лет назад в C++), и этот запрос отправляется с этой самой страницы, выполняется некоторая проверка, и если она удовлетворяет условию перехода на более новую версию webapp (сделанной на совершенно разных языках Java), она должна перейти к ' http: // de: 22222/def' webapp. Возможно ли что-то подобное? – abi1964

+0

Мое предложение там, было бы опубликовано локальным скриптом, который затем выполняет внутренний запрос на завихрение на соответствующий сервер, и возвращает соответствующий контент. Используя серверный скрипт в качестве прокси-сервера, вы обойдете любые ограничения безопасности браузера – Bryan

Смежные вопросы