2017-08-23 11 views
0

私のVueプロジェクトでAxiosを使用しています。私のAPIへの呼び出しの1つにPOSTが含まれています。投稿と取得の両方で、Authorizationヘッダーに自分のトークンを設定する必要があります。すべての要求は正常に動作し得るが、ここでは403axios.postはauthヘッダーを送信しません(ただし.getはあります)

axios.post結果にまったく同じヘッダを置くことは、私のaxiosコードです:

axios.post('https://my.example.org/myapi/meta?uname=' + uname + '&umetaid=' + post.umeta_id + '&umetavalue=' + post.meta_value, { 
      withCredentials: true, 
      headers: { 'Authorization': 'Bearer ' + mytoken } 
     }) 
    .then(function (response) { 
     console.log(response) 
    }) 
    .catch(function (error) { 
     console.log(error) 
    }) 

これは常に403エラーになり、そして私のリクエストヘッダのショーをチェックしますAuthorizationヘッダーは送信されません。上記のaxios.postaxios.getに変更して(既存のPOST,OPTIONSに加えて、私のAPIコードにGETメソッドを追加すると)うまく実行されます。私はそれをこのままにしておくことができると思いますが、実際にPOSTを実行しているときにGETコールを使用することは悪い習慣であると私は考えています。寄生虫でPOSTリクエストを作成することについて私が欠けていることはありますか?

+0

何のメッセージポストをやったときに、コンソールになっていますか? –

答えて

1

Axios Post要求は、2番目のパラメータがデータであり、3番目のパラメータがconfigであることを前提としています。

Axios Getリクエストは、データがURLに追加されている間に2番目のパラメータがconfigであるとみなします。

urlのデータは、2番目のパラメータ(POST要求の場合)として送信しています。

コードは次のようになります。

var data = { 
    'uname': uname, 
    'umetaid': post.umeta_id, 
    'umetavalue': post.meta_value 
} 
var headers = { 
    withCredentials: true, 
    headers: { 'Authorization': 'Bearer ' + mytoken } 
} 
axios.post('https://my.example.org/myapi/meta',data,headers) 
.then(function (response) { 
    console.log(response) 
}) 
.catch(function (error) { 
    console.log(error) 
}) 
+0

ありがとう、私はそれを逃したと信じられない! – Stephen

関連する問題