Hallo zusammen.
Ich habe mit C# ein Windows Service Programmiert.
Dieser Service übernimmt einige interne Aufgaben für die Verwaltung.
Gleichzeitig hostet dieser Service eine im Netzwerk zugängliche Homepage als WEB API.
Das funktioniert alles soweit auch prima. Ich kann von ein anderen Rechner im Netzwerk auf die Homepage zugreiften und mir Informationen holen. Nun habe ich angefangen ein Admin Tool zu bauen in Form einer HTML/JavaScript Homepage (vorgeschrieben).
Nachdem ich das HTML Gerüst fertig hatte, habe eine Methode getestet um mir die Informationen einer dieser APIs zu holen. Die Funktion sieht folgender maßen aus:
Als Antwort bekomme ich folgendes:
Dann habe ich recherchiert was CROS ist und habe herausgefunden, dass ich bei dem API Host den Zugriff erlauben muss. Nachdem ich für mein Projekt endlich eine Lösung gefunden habe und diese Implementierte, musste ich zu dem Ergebnis kommen, das diese nicht funktioniert.
Meine Lösung in dem HostBuild:
Das sind zwei Methoden die Einstellungen an dem WEB-API Objekt vornehmen. Danach wird dieser gestartet.
Der Part:
sollte vorerst alle Anfragen erlauben. Trotzdem laufe ich auf den gleichen Fehler.
Mir gehen so langsam die Ideen auch, also hoffe ich, dass mir hier evtl. jemand ein Tipp geben kann wie ich das Problem lösen könnte.
Ich bedanke mich jetzt schon mal für jede hilfreiche Antwort .
Ich habe mit C# ein Windows Service Programmiert.
Dieser Service übernimmt einige interne Aufgaben für die Verwaltung.
Gleichzeitig hostet dieser Service eine im Netzwerk zugängliche Homepage als WEB API.
Das funktioniert alles soweit auch prima. Ich kann von ein anderen Rechner im Netzwerk auf die Homepage zugreiften und mir Informationen holen. Nun habe ich angefangen ein Admin Tool zu bauen in Form einer HTML/JavaScript Homepage (vorgeschrieben).
Nachdem ich das HTML Gerüst fertig hatte, habe eine Methode getestet um mir die Informationen einer dieser APIs zu holen. Die Funktion sieht folgender maßen aus:
Code:
function getClientObjFromJson()
{
var json = new XMLHttpRequest();
json.open("GET", "http://192.168.1.103:48523");
json.send();
var text = "Status: " + json.status + " ReadState: " + json.readyState + " Text: " + json.response;
console.log(text);
}
Als Antwort bekomme ich folgendes:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://192.168.1.103:48523/. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
Dann habe ich recherchiert was CROS ist und habe herausgefunden, dass ich bei dem API Host den Zugriff erlauben muss. Nachdem ich für mein Projekt endlich eine Lösung gefunden habe und diese Implementierte, musste ich zu dem Ergebnis kommen, das diese nicht funktioniert.
Meine Lösung in dem HostBuild:
Code:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddCors();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
app.UseCors(builder =>
{
builder.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod();
});
Das sind zwei Methoden die Einstellungen an dem WEB-API Objekt vornehmen. Danach wird dieser gestartet.
Der Part:
Code:
app.UseCors(builder =>
{
builder.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod();
});
sollte vorerst alle Anfragen erlauben. Trotzdem laufe ich auf den gleichen Fehler.
Mir gehen so langsam die Ideen auch, also hoffe ich, dass mir hier evtl. jemand ein Tipp geben kann wie ich das Problem lösen könnte.
Ich bedanke mich jetzt schon mal für jede hilfreiche Antwort .