Hallo,
irgendwo muss ich einen ganz blöden Fehler machen, den ich nicht sehe, vielleicht könnt Ihr mir die Augen offen.
Ich möchte eine kleine WebAPI entwickeln, welche per JavaScrippt genutzt werden soll. Da beide Teile auf dem gleichen Integrierten System laufen sollen, bin ich auf das .NET Framework 4.0 einen Webbrowser (integriert in eine Fremdanwendung) beschränkt, dessen Fähigkeiten irgendwo zwischen dem IE8 und IE 11 liegen. Features die weniger als 10 Jahre alt sind lassen sich also nicht nutzen.
Daher sieht meine JS Implementation, welche meine eigene SendMessage Funktion aufrufen soll so aus:
JavaScript-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| function SendMessage(Receiver, Message) { let Adress = "http://" + BASEADRESS + "/api/messages/send"; let Data = { 'clientid': APICLIENTID, 'receiver': Receiver, 'message': Message }; let request = new XMLHttpRequest(); request.open("GET", Adress, false); request.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); request.send(JSON.stringify(Data)); return request.responseText; } |
Auf Server Seite nutze ich einen
HttpSelfHostServer und implementiere im
MessagesController diese Get Methoden:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| public HttpResponseMessage Get(string command, string id, [FromBody] JObject Data) { {...} }
public HttpResponseMessage Get(string command, [FromBody] JObject Data) { return Get(command, string.Empty, Data); } |
Wenn ich einen Breakpoint in diese setze kann ich erkennen, dass sie auch aufgerufen werden, allerdings muss ich auch erkennen, dass der Parameter
Data leer bleibt. Dies übrigens auch denn ich den Datentypt auf string setze. Auch beim untersuchen der Request Eigenschaft des
ApiController wird mir angezeigt, dass der content leer ist.
Ich versehe nur nicht warum. Habt ihr eine Idee?