1

angular 7でハッカーニュースのインターフェースを作成しています。通常、利用可能なパブリックAPIを使用しますが、ログインサービスでは利用できません。

HN 用の OpenSource Android Client アプリによって行われたように、特にこのファイルで POST 呼び出しを実行しようとしています: https://github.com/hidroh/materialistic/blob/master/app/src/main/java/ io/github/hidroh/materialistic/accounts/UserServicesClient.javaを URL https://news.ycombinator.com/loginに追加し、ユーザー名、パスワード、およびリダイレクトをパラメーターとして設定します。

残念ながら、私のリクエストは CORS ポリシーによってブロックされています。

私は Postman でテストを実行しましたが、代わりに完全に動作します。

これは私のコードです:

const payload = {
  'acct': 'username',
  'pw': 'password',
  'goto': 'news'
};

const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type': 'application/json',
    'Access-Control-Allow-Origin': '*',
    'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, PUT, DELETE, HEAD',
    'Access-Control-Allow-Headers': 'X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept',
    'Access-Control-Allow-Access-Control-Max-Age': '1728000',
  })
};

console.log('Try login');
this.http.post('https://news.ycombinator.com/login', payload, httpOptions)
  .pipe(
    tap(
      data => console.log(data),
      error => console.log(error)
    )
  ).subscribe(result => console.log(result));

どうすれば解決できますか?

4

3 に答える 3