Ich habe einen Server, den ich eingerichtet habe, läuft in der Produktion, wir haben Tonnen von Anwendungen, die diesen Webserver aufrufen. Der folgende Code soll demonstrieren, dass er jegliche Ursprungsanforderungen zulässt.AllowAnyOrigin Cors Nicht funktioniert Axios Vuejs
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseExceptionHandler("/Home/Error");
app.UseStaticFiles();
app.UseCors(builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
});
Dies funktioniert für alle derzeit eingerichteten Server. Es befindet sich in unserem internen Netzwerk und andere Server werden diesen Dienst intern nutzen.
Ich erstelle einen Proof of Concept, um zu versuchen, unsere Anwendungen langsam zu modernisieren, indem wir Vue
verwenden. Außer dieser axios
Anfrage wird ein Fehler angezeigt. Die anderen Server, die diese Methode aufrufen, verwenden ebenfalls .net, aber sie sollten dieselbe Anfrage erstellen.
Hier ist der Fehler.
Fehler beim Laden von https: // {Server}/api/application/36626: Auf der angeforderten Ressource ist kein Header 'Access-Control-Allow-Origin' vorhanden. Ursprung 'http://localhost:8080' ist daher nicht erlaubt.
Dies ist offensichtlich verrückt reden von axios. Ich lasse jeden Ursprung zu. Ich kann mir nicht vorstellen, dass wir nur "einfache Anfragen" verwenden wollen, damit der w3-Standard für einfache Anfragen nicht funktioniert. Ich dachte, das könnte ein falscher Fehler sein, wenn man bedenkt, dass es sich um einen Server handelt. Der Code ist unten.
<script>
import axios from 'axios'
export default {
name: 'AppList',
data() {
return {
applist: [],
errors: []
}
},
created: function() {
axios.get('https://{server}/api/application/36626')
.then(r => { console.log(response); })
.catch(ex => {
this.errors.push(ex);
})
}
}
</script>
EDIT Ich habe volle Rechte an dieser Maschine habe ich bestätigt ich ohne Probleme ein Postbote GET Anfrage von meinem lokalen Rechner verwenden können.
Edit 2 Arbeiten curl Befehl curl -X GET --header 'Accept: application/octet-stream' 'https://{server}/api/Application/36626'
Versuchen Sie Ihren Server mit https://www.test-cors.org/ – akatakritos
@akatakritos es auf unserem internen Netzwerk ist, ist außerhalb unserer Netzwerk nicht verfügbar. –
Es macht eine Anfrage von Ihrem Browser, so dass Sie immer noch in der Lage sein, es zu treffen – akatakritos