2016-09-10 1 views
0

Meine Express-App (für File-Serving) gibt 300 zurück, wenn eine Anfrage-Methode "OPTIONS" von meiner Client-Anwendung gesendet wird. Hier ist der Code:Express-Status 300 auf Optionen

import express from 'express' 
import * as middleware from './middleware' 
let App = express(); 

// Logger 
App.use((req, res, next) => { 
    console.log(req.method, req.url) 
    next() 
}) 

// Cors 
App.use((req, res, next) => { 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization"); 
    next(); 
}); 

// Middleware 
// App.use('/', middleware.authenticate) 

// Root 
App.get('/', (req, res) => { 
    res.send('Test!') 
}) 

App.listen(3030,() => { 
    console.log('It\'s working!') 
}) 

In meinem anderen Client (die Cross-Domain auch) ich "300" auf random:

Chrome console

Chrome network

Es scheint nicht um ein echtes Muster zu sein, wenn der "300" -Fehler auftritt, wie Sie sehen können. Hier

ist der Code für die Anforderung von meinem Client gesendet:

import axios from 'axios' 
import Store from '../store' 

let api_url = 'http://127.0.0.1:8000/api' 
let media_url = 'http://127.0.0.1:3030' 

let urls = { 
    api: api_url, 
    media: media_url, 
} 

const Request = { 
    GET: function(url, server) { 
    this.getAuthtoken(); 
    return axios.get(urls[server || 'api'] + url, this.config) 
    }, 
    getAuthtoken: function() { 
    let token = Store.getState().auth.key; 
    if (token !== null) { 
     this.config.headers['Authorization'] = "Token " + token 
    } else { 
     delete this.config.headers.Authorization; 
    } 
    }, 
    config: { 
    headers: {} 
    } 
} 

// The request 
Request.GET('/', 'media').then((response) => { 
    console.log(response) 
}) 
+0

Was macht Ihr Kunde? Können Sie den Code posten? – peteb

+0

@peteb Ja, siehe meine Bearbeitung. –

+0

Dieses Verhalten ist nicht wirklich sinnvoll. AFAICS, Express sendet keine 300 Antworten, es sei denn, Sie werden ausdrücklich dazu aufgefordert, und der Code, den Sie veröffentlichen, tut das nicht. – robertklep

Antwort

0

Es scheint Chrome Schuld für diese war. Keine meiner Erweiterungen verursachte das Problem, aber das Löschen aller Daten und das Zurücksetzen von Chrome behob das Problem.

Verwandte Themen