2016-07-25 12 views
0

私たちのdevサーバーでは動作しないSPServicesに問題があります。プロダクトとテストでうまく動作しますが、何らかの理由でdevで動作しません。上のコードを実行すると、コンソールで次のように表示されます。SPServicesがロードされていても動作していません

{readyStateの:0、のresponseXML:未定義、状態:0、STATUSTEXT: "いいえ交通"}

私がオンラインこれを読んでクロスドメインの転送に問題があることができますので、私は次のように設定します。

$.support.cors = true; 

{readyStateの:0、のresponseXML:未定義、状態:0、STATUSTEXT: "エラー:無効な引数"}私は今、次のことを得ることで

をIこれは、SPGetCurrentUserの呼び出しが、ユーザーの代わりに何らかの理由で常に空の文字列を返すためだと考えてください。誰もこの行動を以前に見たことがありますか? SPServicesにロードを実行させるが、呼び出しを実行できない一般的なことは何ですか?助けてくれてありがとう。

+0

は、SharePoint 2007じゃないので、あなたは[JavaScriptのオブジェクトモデル](http://stackoverflow.com/documentation/sharepoint/1316/working-with-javascript-client-object-を使用することを検討すべきですmodel-jsom)をSP2010 +で利用できます。これとRESTサービスの間に、2010年以降SPServicesの使用例が多く見られませんでした。 – Thriggle

+0

ご回答いただきありがとうございます。残念ながら、SP2010のCSOMは、SP2010のIDのみでSPグループを取得することができないため、かなり半分焼きました。興味のあるグループIDが異なるサーバー(prod、dev、stagingなど)間で同じになることを保証する方法がないので、これは問題です。どのIDがどのサーバーに関連するかを維持することは、悪夢。あなたは2013年の間にまったく正しいですし、CSOMを超えては素晴らしいです。 –

答えて

3

これは、SPServicesのバグであることが判明しました。何らかの理由でポート番号の付いたサイトでSPServicesを使用すると、ポート番号が重複するため、すべてが破損しているように見えます。だから私の例のように、私はwebURLを指定していないので、SPServicesは、現在のWebを使用しますが、ここで示すようにポートを複製上:

correct url: http://yourserver:123/sites/yoursite

SPServices: http://yourserver:123123/sites/yoursite

以下の作業コードに示すように、これは単にサイトの相対webURLを指定する修正するには。うまくいけば、これは誰かにいくつかの悪化を節約します。

var site = "/sites/yoursite"; 

$(document).ready(function() { 
    $().SPServices({ 
     operation: "GetGroupCollectionFromUser", 
     userLoginName: $().SPServices.SPGetCurrentUser({ 
          webURL: site 
         }), 
     webURL: site, 
     async: false, 
     completefunc: function (xData, Status) { 
      //Do stuff here 
     } 
    }); 
}); 
関連する問題