2016-09-27 19 views
3

は、SharePoint Onlineのアプリのためのカレンダーリストからイベントをreccurring取得しようとしていますし、
のXMLHttpRequestをロードすることはできません取得(URL)は、プリフライトの応答は、ここで(リダイレクト)

hostWebUrl = decodeURIComponent(manageQueryStringParameter('SPHostUrl')); 
    function GetListData() { 
     var webUrl = hostWebUrl;// = "http://server/sitewhereyourlistexists"; 
     var listGuid = "{2000da75-8663-42d9-9999-ad855c54b4e0}" 


     // An XMLHttpRequest object is used to access the web service 
     var xhr = new XMLHttpRequest(); 
     var url = webUrl + "/_vti_bin/Lists.asmx"; 
     xhr.open("POST", url, true); 
     xhr.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); 
     xhr.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/sharepoint/soap/GetListItems"); 

     // The message body consists of an XML document 
     // with SOAP elements corresponding to the GetListItems method parameters 
     // i.e. listName, query, and queryOptions 
     var data = "<?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>" + 
       "<GetListItems xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\">" + 
         "<listName>" + listGuid + "</listName>" + 
         "<query>" + 
          "<Query><Where>" + 
           "<DateRangesOverlap>" + 
            "<FieldRef Name=\"EventDate\"/>" + 
            "<FieldRef Name=\"EndDate\"/>" + 
            "<FieldRef Name=\"RecurrenceID\"/>" + 
            "<Value Type=\"DateTime\"><Today/></Value>" + 
           "</DateRangesOverlap>" + 
          "</Where></Query>" + 
         "</query>" + 
         "<queryOptions>" + 
          "<QueryOptions>" + 
           "<ExpandRecurrence>TRUE</ExpandRecurrence>" + 
          "</QueryOptions>" + 
         "</queryOptions>" + 
       "</GetListItems>" + 
       "</soap:Body>" + 
      "</soap:Envelope>"; 

     // Here we define what code we want to run upon successfully getting the results 
     xhr.onreadystatechange = function() { 
      if (xhr.readyState == 4) { 
       if (xhr.status == 200) { 
        var doc = xhr.responseXML; 
        // grab all the "row" elements from the XML results 
        var rows = doc.getElementsByTagName("z:row"); 
        var results = "Today's Schedule (" + rows.length + "):\n\n"; 
        var events = {}; 
        for (var i = 0, len = rows.length; i < len; i++) { 
         var id = rows[i].getAttribute("ows_FSObjType"); // prevent duplicates from appearing in results 
         if (!events[id]) { 
          events[id] = true; 
          var allDay = rows[i].getAttribute("ows_fAllDayEvent"), 
           title = rows[i].getAttribute("ows_Title"), 
           start = rows[i].getAttribute("ows_EventDate"); 
          var index = start.indexOf(" "); 
          var date = start.substring(5, index) + "-" + start.substring(2, 4); // get the date in MM-dd-yyyy format 
          start = start.substring(index, index + 6); // get the start time in hh:mm format 
          var end = rows[i].getAttribute("ows_EndDate"); 
          index = end.indexOf(" "); end = end.substring(index, index + 6); // get the end time in hh:mm format 
          results += date + " " + (allDay == "1" ? "All Day\t" : start + " to " + end) + " \t " + title + "\n"; 
         } 
        } 
        alert(results); 
       } else { 
        alert("Error " + xhr.status); 
       } 
      } 
     }; 

     // Finally, we actually kick off the query 
     xhr.send(data); 
    } 


のような後のようなコードを使用していますが無効です。この関数をデシジョンで呼び出します。準備セクションには、任意のデータを取得していないが、私は
enter image description here

+0

こんにちは、フィドラーをインストールしてからもう一度POSTを実行してみましたか? Fiddlerは素晴らしいネットワークメソッドのデバッグツールです。要求と応答を見ることができます。あなたがテストをしたときに投稿してください。 – Daniel

+0

はい、私はこれをインストールしました。どうすれば自分のコードをデバッグできますか? – Madhav

+0

あなたはアプリを開いて(Fiddler)、アプリでPOSTを実行する必要があります。それはネットワークでの呼び出しで – Daniel

答えて

0

以下のようにあなたは「検査官を選択し、左側のパネルで、正しい要求をクリックしますされ、ブラウザのコンソールで見ることができますINEエラーがあります右側の上部パネルに表示されます。次に、さまざまな要求オプションと応答オプションを選択します。

Fiddler

+0

okk、上記のエラーを引き起こしていると私は何を示していますか? – Madhav

+0

かなりええ - >そうでなければ、サーバーへの呼び出しをデバッグするだけです。私がさらに助けることができるように、あなたが見つけたものを投稿してください。 – Daniel

関連する問題