2012-04-21 4 views
0

私はphonegapアプリケーションで作業しています。私は.net webserviceを通してユーザーを検証する必要があります。私はjavascript.butを介してそれを検証し、解析するためにajaxを使用しています。私はreadystateでそれが常にゼロを返すように固執しています。私はネットで見つけた利用可能なソリューションから多くのことを試しましたが、それは正しくできません。ここで 読み取り値は常に0です

は私のJavascriptです:

username = 'ksl'; 
password = 'ksl'; 
var soapMessage = 
     '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> \ 
     <soap:Body> \ 
     <CheckLogin xmlns="http://tempuri.org/"> \ 
     <UserName>' + username + '</UserName> \ 
     <Password>' + password + '</Password> \ 
     </CheckLogin> \ 
     </soap:Body> \ 
     </soap:Envelope>'; 

     $.ajax({ 
      url: validationURL, 
      type: "POST", 
      dataType: "xml", 
      data: soapMessage, 
      success: validate, 
      contentType: "text/xml; charset=\"utf-8\"", 
      error: function(xhr,status,error) 
      { 
      alert("state is:" + xhr.readyState); 
      } 
     }); 

     return false; 

、ここで私のWebサービスのレスポンスです:

HTTP/1.1 200 OK 
Content-Type: text/xml; charset=utf-8 
Content-Length: length 

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <CheckLoginResponse xmlns="http://tempuri.org/"> 
     <CheckLoginResult>string</CheckLoginResult> 
    </CheckLoginResponse> 
    </soap:Body> 
</soap:Envelope> 

任意の応答が参考になります

+0

..私はHTMLでいくつかの変更を行い、それが正常に動作します。..私の問題を見たため

のおかげ? – Niko

+0

JavaScriptとAjaxに関連する私の無知のため申し訳ありません。しかし、私はここで私はjavascriptとajaxを使用してphonegapを使用しています。 webserviceは.netからです。それはクロスドメインですか? – dreamcoder

+0

私はphonegapの経験はありませんが、通常のWebブラウザでは、別のホストにajaxリクエストを送信することはできません。これが私の頭に浮かぶ最初のことです。クロスドメインポリシー。 – Niko

答えて

2

Ok..Iが見つかった問題::

1)</soap:Body> \の後にスペースがあったため、削除しました。

2)これはクロスドメインリクエストです

関連する問題