2012-05-05 11 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(完全に別の言語のjavaで作られたもの) http:// de:22222/def' webapp。このようなことが可能ですか? – abi1964

+0

私の提案は、ローカルスクリプトに投稿し、適切なサーバーにバックエンドのカール要求を行い、適切なコンテンツを返します。サーバー側スクリプトをプロキシとして使用すると、ブラウザのセキュリティ制限をバイパスします – Bryan

関連する問題