2017-03-10 3 views
-1

Was läuft hier falsch? Ich bin 100% sicher, dass ich eine HTTP-POST-Anfrage sende, aber irgendwie funktioniert der OR-Operator nicht so, wie ich es erwarte. Im ersten Beispiel gibt der Server eine 405 zurück und im zweiten Beispiel wird der Code weiter ausgeführt.|| Operator funktioniert nicht wie erwartet

nicht funktioniert:

if req.Method != http.MethodPost || req.Method != http.MethodDelete { 
    http.Error(res, http.StatusText(http.StatusMethodNotAllowed), http.StatusMethodNotAllowed) 
    return 
} 

Arbeits:

if req.Method != http.MethodPost { 
    http.Error(res, http.StatusText(http.StatusMethodNotAllowed), http.StatusMethodNotAllowed) 
    return 
} 
+4

Es scheint, Sie verwenden müssen ‚&&‘ - Ihr Zustand ist immer TRUE – VladimirM

+0

@ tom12e - console.log Ihr Objekt reg und sehen, was die Methode Eigenschaft ist – Phil

Antwort

2

(Nicht etwas) OR (nicht etwas anderes gegenseitig aus) ist immer wahr sein würde, nicht wahr?

Wenn es Methode post ist, wird es nicht gelöscht werden und umgekehrt, möchten Sie möglicherweise & &?

0

Wie Kenny Grant sagte, möchten Sie vielleicht über die Logik nachdenken. Vielleicht ist es das, was Sie gemeint:

// only allow POST or DELETE 
if req.Method != http.MethodPost && req.Method != http.MethodDelete { 
    http.Error(res, http.StatusText(http.StatusMethodNotAllowed), http.StatusMethodNotAllowed) 
    return 
} 
Verwandte Themen