仕事の一部のタスクを自動化したいと考えています。たとえば、時間のかかる RT でのログインの代わりに、特定のチケットを検索して、JavaScript を使用して単純な HTML フォームから更新したいと考えています (これが現在私が持っている唯一のツールです)。
ドメインは次のようになります。
mydomain.example.io
と
RTdomain.example.io
コード例:
var url = "https://RTdomain.example.io/REST/1.0/ticket/1065/edit?user=guest&pass=guest";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader('Content-Type', 'text/html');
xhr.send(JSON.stringify({
content: "Content: asdf"
}));
おそらくすぐにわかると思いますが、ブラウザーは No 'Access-Control-Allow-Origin' ヘッダーのために POST の呼び出しを許可しません。
CORS を使用せず、RT サーバーに干渉せずにチケットを編集する方法はありますか?
私が持っているのは、RT アカウントとそれに関連付けられたセキュリティ アクセス トークンです。また、ブラウザのクロスオリジン セキュリティをオフにすることもできません。
ウィキペディア XMLHttpRequest では、次のように読むことができます。
CORS プロトコルにはいくつかの制限があり、2 つのサポート モデルがあります。単純なモデルでは、カスタム リクエスト ヘッダーを設定できず、Cookie が省略されます。さらに、HEAD、GET、および POST 要求メソッドのみがサポートされ、POST は次の MIME タイプのみを許可します: 「text/plain」、「application/x-www-urlencoded」、および「multipart/form-data」。最初は「text/plain」のみがサポートされていました。もう 1 つのモデルは、非単純な機能の 1 つが要求されたことを検出し、機能をネゴシエートするためにプリフライト要求をサーバーに送信します。
では、どうすればこれを理解できますか?プリフライト チェックなしで text/plain データ型で POST を実行できますか?
初心者のように聞こえたら申し訳ありませんが、このトピックに関してかなりの数のことを読みましたが、それが私を混乱させた唯一のことです. 私は API の経験があまりありません。GitHub API で動作する Android アプリを 1 つだけ作成しました。JavaScript でそれを処理することは、私にとって頭痛の種です。
これは彼らの API wiki です: RT wiki 誰かこれに対する簡潔な解決策を持っていますか? ありがとうございました。