2017-03-10 9 views
-1

ここで何が問題になりますか?私は100%HTTP POSTリクエストを送信していると確信していますが、何とかOR演算子が期待どおりに動作していません。最初の例では、サーバーは405を返し、2番目の例ではコードは実行を継続します。||演算子が期待通りに動作しない

に動作していない:

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

作業:

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

それはあなたが使用する必要があるようだ「&&」 - あなたの状態はtom12e @常にTRUE – VladimirM

+0

です - あなたのREGオブジェクトをCONSOLE.LOGとメソッドのプロパティが何であるかを見ます – Phil

答えて

2

(未何か)OR(他の相互に排他的ではない何かが)常にtrueになるだろうが、それはないですか?

メソッドポストの場合は削除されず、その逆の場合もあります。& &?

0

ケニー・グラントのように、あなたはロジックについて熟考したいと思うかもしれません。おそらくこれは、あなたが何を意味するのかである:

// only allow POST or DELETE 
if req.Method != http.MethodPost && req.Method != http.MethodDelete { 
    http.Error(res, http.StatusText(http.StatusMethodNotAllowed), http.StatusMethodNotAllowed) 
    return 
} 
関連する問題