2012-02-28 25 views
1

を動作していないとSharePointサーバーに私は次の問題を抱えています。私はAndroidのエミュレータにメッセージがあるエラーを、それを実行しようとするとAJAXのPhoneGapとjQuery Mobileは

$.ajax({ 
    url:"https://xxx/_vti_bin/lists.asmx", 

    beforeSend: function(xhr){ 
    xhr.setRequestHeader(
    "SOAPAction", 
    "http://schemas.microsoft.com/sharepoint/soap/GetListCollection" 
    ); 
    xhr.setRequestHeader("Content-Type","text/xml; charset=utf-8"); 
    }, 
    dataType:"xml", 
    contentType: "application/xml; charset=utf-8", 
    timeout:10000, 
    type:'POST', 
    cache: false, 
    username: "username", 
    password: "password", 
    data: soapEnv, 
    success:function(data) { 
     // alert data 
     var serializer = new XMLSerializer(); 
     serialized = serializer.serializeToString(data); 
     alert(serialized); 
    }, 
    error:function(XMLHttpRequest,textStatus, errorThrown) { 
     // alert errors 
    alert("Error status :"+textStatus); 
    alert("Error type :"+errorThrown); 
    alert("Error message :"+XMLHttpRequest.responseXML); 
    alert("Error statustext :"+XMLHttpRequest.statusText); 
    alert("Error request status :"+XMLHttpRequest.status); 
    }, 
    complete: function(jqXHR, textStatus){ 
     alert(textStatus); 
    } 
    }); 

:(Android用)のPhoneGapアプリケーションでは、私は次のコードで、Sharepointのサーバーに接続するためのAJAXコールを作りたいです。

Error status: error 
Error type: 
Error message: undefined 
Error statustext: error 
Error request status: 0 

は、しかし、私はそれがすべて正常に動作します(理由は同一生成元ポリシーの)無効WebSecurity社と私のブラウザ(クローム)上でそれを実行しようとします。 ///プロトコル:PhoneGapのは通常ので、ファイルのSOPを気にしてはいけません。私は「mobileinit」に次を追加しました:

$(document).bind("mobileinit", function() { 
      $.support.cors = true; 
      $.mobile.allowCrossDomainPages = true; 
     }); 

しかし、私は無効になってWebSecurity社せずにChromeで同じコードを実行すると、私は、Androidエミュレータと全く同じエラーが発生します。

私はまた、ウィキペディアへのAJAX呼び出してみました(XMLではなくHTMLでの、およびPOSTの代わりにGET)、それは問題なく働きました。 (私はそれを正しい方法を設定するために管理している場合、Fiddler2を内トラフィック)

また、私は、だから私は今、2日以来、この問題には本当にこだわっています

SharepointのにAJAXもクビにしないと思うん誰もがこのAJAX呼び出しの仕事を作る方法を知っている場合、それは

:-)私はとても幸せ作られます(soapEnvがサーバに送信され、XMLエンベロープである)

+0

こんにちは、あなたがこの問題を解決することができましたか?あなたのソリューションを共有したいと考えています。 – haifacarina

答えて

2

まあ、私は昔のjQueryを持っていたことを知っています要求ステータス0をエラーとして処理したバグです。ファイルプロトコルから実行するときに0の状態は、200(OK)として、これと同じです。 jQueryのバージョンを更新する必要があるかもしれません。またちょうどそれが動作するかどうかを確認するためにあなたのサービスにプレーンバニラのXHRリクエストを行う私の理論をテストするために

。ここに私の株式の例である:

http://simonmacdonald.blogspot.com/2011/12/on-third-day-of-phonegapping-getting.html

+0

さて、あなたに感謝します。私はすでにJQueryバージョン1.7を持っています。しかし、私はこの単純なXHRリクエストも試してみます:-) – Max

関連する問題