現在、Atlassian Jira REST API を使用しようとしています。CORS エラーが発生しないようにするために、ブラウザからリクエストを送信せず、エクスプレス サーバー経由でプロキシするという推奨ルートを使用します。
これを行っている今、アプリで返されるのは保留中の約束だけです。ある時点で正しく解決していないと思いますが、どこにあるのかわかりません。
リクエストをプロキシに送信する API ハンドラ:
const baseURL = `${apiConfig}/jiraproxy`;
export const testConnection = integration => {
return fetch(`${baseURL}/get`, {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify(integration)
})
.then(handleResponse)
.catch(handleError);
};
Express サーバー上の Jira プロキシ エンドポイント
const baseURL = `rest/api/3/dashboard`;
router.post("/get", (req, res) => {
fetch(req.body.link + baseURL, {
method: "GET",
headers: { Accept: "application/json" },
auth: {
username: req.body.credentials.username,
password: req.body.credentials.token
}
})
.then(handleResponse)
.catch(handleError);
});
handleResponse & handle Error メソッド:
async function handleResponse(response) {
if (response.ok) {
return response.json();
}
if (response.status === 400) {
const error = await response.text();
throw new Error(error);
}
throw new Error("Network response was not ok.");
}
function handleError(error) {
// eslint-disable-next-line no-console
console.error(`API call failed. ${error}`);
throw error;
}
目標: プロキシにリクエストを送信するリクエストを送信し、最初の「testConction」メソッドのリターンとしてプロキシのレスポンスを返します。
エラー: エラーはスローされませんでしたが、ブラウザーで受信した応答は保留中の約束です。