SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




jquery und eigener Webservice: Das Anforderungsformat ist ungültig

Geprüfte Antwort Dieser Beitrag hat 1 Antworten

Ohne Rang
10 Beiträge
pantau erstellt 31 Mai 2010 09:49
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich versuche grade einen eigenen Webservice für Sharepoint zu schreiben und diesen über jquery aufzurufen. Den Webservice habe ich nach dieser Anleitung (http://msdn.microsoft.com/en-us/library/ms464040.aspx) erstellt. Der Aufruf über das "_vti_bin"-Verzeichis klappt - allerdings erhalte ich dort kein Testformular ("Das Testformular ist nur für Methoden mit primitiven Typen wie Parametern verfügbar."). Also habe ich es mal über das "_layouts"-Verzeichis probiert. Dort klappt alles so wie es soll und meine Funktionen geben den erwarteten Output zurück:

<!-- function f(e){ if (e.className=="ci"){if (e.children(0).innerText.indexOf("\n")>0) fix(e,"cb");} if (e.className=="di"){if (e.children(0).innerText.indexOf("\n")>0) fix(e,"db");} e.id=""; } function fix(e,cl){ e.className=cl; e.style.display="block"; j=e.parentElement.children(0); j.className="c"; k=j.children(0); k.style.visibility="visible"; k.href="#"; } function ch(e){ mark=e.children(0).children(0); if (mark.innerText=="+"){ mark.innerText="-"; for (var i=1;i<e.children.length;i++) e.children(i).style.display="block"; } else if (mark.innerText=="-"){ mark.innerText="+"; for (var i=1;i<e.children.length;i++) e.children(i).style.display="none"; }} function ch2(e){ mark=e.children(0).children(0); contents=e.children(1); if (mark.innerText=="+"){ mark.innerText="-"; if (contents.className=="db"||contents.className=="cb") contents.style.display="block"; else contents.style.display="inline"; } else if (mark.innerText=="-"){ mark.innerText="+"; contents.style.display="none"; }} function cl(){ e=window.event.srcElement; if (e.className!="c"){e=e.parentElement;if (e.className!="c"){return;}} e=e.parentElement; if (e.className=="e") ch(e); if (e.className=="k") ch2(e); } function ex(){} function h(){window.status=" ";} document.onclick=cl; -->

  <?xml version="1.0" encoding="utf-8" ?>
  <string xmlns="http://tempuri.org/">output</string>

Nun versuche ich die Daten innerhalb der EditForm.aspx abzurufen. Für den Aufruf benutze ich folgenden Code, der auf das Blur-Event einer Textbox reagiert:

function test(obj){
     strTest = obj.val();
          
     $.ajax({
                type: "POST",
                url: "http://meinServer:8080/websites/meineSite/_layouts/MeinWebServices.asmx/functionTest",
                data: "{'strTest': '" + strTest+ "'}",
                contentType: "application/xml; charset=utf-8",
                dataType: "xml",
                success: function(result) {
                    alert(result.d);
                },
                error:function(xhr,err){
                    alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status);
                    window.clipboardData.setData("Text",xhr.responseText);
                }
     });
}

Der Aufruf gibt nun sowohl im "_layouts"- als auch im "_vti_bin"-Verzeichis die Meldung "200 OK" zurück. Bei der Betrachtung des Respons-Textes bekomme ich bei Aufruf über das "_layouts"-Verzeichis auf dem lokalen Server auch eine genauere Fehlerbeschreibung:

Das Anforderungsformat ist ungültig: application/json; charset=utf-8.


Kann mir da jemand weiterhelfen?

Pantau



Alle Antworten

Ohne Rang
10 Beiträge
pantau Als Antwort am 31 Mai 2010 10:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

So.. man muss nur richtig suchen ("invalid request format" statt "ungültiges Anforderungsformat") :)

Das Problem war, dass Sharepoint noch auf .NET 2.0 lief und da natürlich keine JSON-Anfragen verarbeitet werden können.

Workaround:

http://www.codefornuts.com/2009/05/enabling-json-serialization-and-http.html
http://weblogs.asp.net/jan/archive/2008/10/10/enabling-net-3-5-in-sharepoint-2007-sites-the-lazy-way.aspx