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

1 に答える 1

0

ドメインを含めることは、ブラウザがブロックするクロスドメイン リクエストの可能性があるため、問題になります。相対パスを使用することで、投稿先のスクリプトがローカル サーバーに存在し、潜在的なセキュリティ制限を回避していることを二重に確認できます。

于 2012-05-05T07:24:44.450 に答える