Chrome拡張機能からウェブアプリのAPIバックエンドにアクセスする必要があります。ウェブページ自体から発信されたxhrリクエストは常にプリフライトされます(OPTIONS)。しかし、私は拡張モジュールを起動してプリフライトリクエストを発行することはできず、GETリクエストを起動し、サーバー認証メカニズムはOPTIONSがない状態でコールを拒否します。Chrome拡張機能jquery Ajaxプリフライトオプション
私はstackoverflowで利用可能なものを読んで、最初にプリフライトを送信しようとしてランダムな "x-weird-header"を追加しようとしましたが、動作しませんでした。
私が理解できないもう1つのことは、ウェブページからの呼び出しに「Origin」ヘッダーを送信しますが、内線からの要求に「Origin」ヘッダーがないことです。
最初にOPTIONSを送信するにはどうすればよいですか?私の要求に「Origin」がないのはなぜですか?
ありがとうございます!
\t $.ajax({
\t url : url, /* url is https and it is called from a non ssl but same domain origin*/
\t type : 'GET',
\t beforeSend : function(xhr) {
\t xhr.setRequestHeader("Accept", "application/json, text/plain, */*");
\t xhr.setRequestHeader("Authorization", "BEARER " + auth_token);
\t xhr.setRequestHeader("x-weird-header", "utf8");
\t },
\t success : function (data) {
\t console.log(data);
\t },
\t error : function (data, errorThrown) {
\t console.log(data);
\t }
\t });