これは私の最初の投稿です。AuthorizationヘッダーをAngular httpリクエストに追加するにはどうすればよいですか?
私はちょうどGoとAngularを学び始めました。私は、アングルアプリをgo apiに接続しようとしています。私は両方を書いており、問題の根本を特定している。 CORSの問題だと思っていましたが、Angular httpリクエストにヘッダー行を含めないと正常に動作します。この時点で、私はヘッダを追加しようとしています。承認コードはまだ実装されていません。
両方のアプリケーションがポート5000上で囲碁アプリでローカルに実行し、動作しない4200
角度のHTTPリクエストに応じて角度いる:作品
this.http.get<ProjectedBalance>(requestUrl, {headers: new HttpHeaders().set('Authorization', 'my-auth-token')})
.subscribe(data => {
this.projBalance = data.projBalance;
}
角度httpリクエスト:
this.http.get<ProjectedBalance>(requestUrl)
.subscribe(data => {
this.projBalance = data.projBalance;
}
このエラーが発生します:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost:4200 ' is therefore not allowed access. The response had HTTP status code 403
私はここではクローム開発ツールから、私の行くのコード内のハンドラ
router := mux.NewRouter()
router.HandleFunc("/home/{endDate}", GetProjBalance).Methods("GET", "OPTIONS")
headersOk := handlers.AllowedHeaders([]string{"X-Requested-With, Content-Type, Authorization"})
originsOk := handlers.AllowedOrigins([]string{"*"})
methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
//start server on port
log.Fatal(http.ListenAndServe(":5000", handlers.CORS(originsOk, headersOk, methodsOk)(router)))
ヘッダ
Request URL:http://localhost:5000/home/2020-12-21
Request Method:OPTIONS
Status Code:403 Forbidden
Remote Address:[::1]:5000
Referrer Policy:no-referrer-when-downgrade
Response Headers
view source
Content-Length:0
Content-Type:text/plain; charset=utf-8
Date:Mon, 20 Nov 2017 21:39:43 GMT
Request Headers
view source
Accept:*/*
Accept-Encoding:gzip, deflate, br
Accept-Language:en-US,en;q=0.9,uz;q=0.8
Access-Control-Request-Headers:authorization
Access-Control-Request-Method:GET
Connection:keep-alive
Host:localhost:5000
Origin:http://localhost:4200
あなたの投稿を質問の形で言い換えることを検討してください... – maerics
私は 'handlers.CORS'がなぜ機能していないのか分かりませんが、CORSを使用しないと、開発リクエストをプロキシする必要があります本番環境では、ポート80で実行されますので、競合はありませんが、Angleのdevサーバーを使用してサーバーをローカルに実行しているので、 'localhost:4200'と' localhost:5000'は異なる起点です。私は、これを行うための "角度のある5つの方法"が何であるか分かりませんが、 'webpack-dev-server'は' package.json'に非常に単純な 'proxy'フィールドを持ち、基本的にそれを複製したいと思っています。 – Brian
こんにちはgobuckeyesは、あなたのクライアントがAPIのリクエストで送るヘッダのリストを私に提供してもいいですか?_(dev-toolsのネットワークタブから)_。 3 ** CORS **を '{" * '} 'に設定しても問題は残りますか? – Mihailo