質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
BASIC

BASICとは、手続き型言語の一つ。英語に準した簡易な記述になっており、基本的には初心者向けのプログラミング言語です。1970年代以降のコンピュータでよく使用された言語で、様々な拡張を加え現在も利用されています。

XHR

XHR(別名XMLHttpRequest)はJavaScriptなどのスクリプト言語を使ってサーバーとHTTP通信を行うAPIを指します。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

CORS

CORSとはCross-Origin Resource Sharingの頭文字をとったもので、ブラウザがオリジン以外のサーバからデータを取得するシステムのことです。

Q&A

解決済

1回答

2640閲覧

[再]BASIC認証下データへのクロスオリジンアクセス

Fujiman

総合スコア41

BASIC

BASICとは、手続き型言語の一つ。英語に準した簡易な記述になっており、基本的には初心者向けのプログラミング言語です。1970年代以降のコンピュータでよく使用された言語で、様々な拡張を加え現在も利用されています。

XHR

XHR(別名XMLHttpRequest)はJavaScriptなどのスクリプト言語を使ってサーバーとHTTP通信を行うAPIを指します。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

CORS

CORSとはCross-Origin Resource Sharingの頭文字をとったもので、ブラウザがオリジン以外のサーバからデータを取得するシステムのことです。

0グッド

1クリップ

投稿2020/07/19 02:12

編集2020/07/19 04:06

元質問で教えてもらったBASIC認証下にあるデータを別ドメインからのアクセスで読み出すことがまた必要になり質問時の設置サイトの動作の検証をしたところ、なぜかまたCORSのエラーが発生するようになってしまいました。どういったところがマズイのか教えていただけるでしょうか?構成は前質問と同じです。

アクセスされる側の.htaccess

xml

1Header append Access-Control-Allow-Origin: http://[アクセスする側のドメイン] 2Header append Access-Control-Allow-Credentials: true 3<Files ~ "^.(htaccess|htpasswd)$"> 4deny from all 5</Files> 6AuthUserFile [フルパス]/.htpasswd 7AuthGroupFile /dev/null 8AuthName "Please enter your ID and password" 9AuthType Basic 10require valid-user 11

アクセスする側のJavaScript

JavaScript

1// 抜粋 2 await (function(){ 3 $.ajax({ 4 beforeSend: function (xhr) { 5 xhr.overrideMimeType('text/html;charset=UTF-8'); 6 }, 7 username: '[ID]', 8 password: '[PassWord]', 9 xhrFields: { 10 withCredentials: true 11 }, 12 url: '[アクセス先URL]/secret.data', 13 type: 'GET' 14 }).done((data, textStatus, jqXHR) => { 15 console.log(data); 16 }).fail((jqXHR, textStatus, errorThrown) => { 17 console.log('エラーは:' + jqXHR.status); 18 }) 19 })()

エラーメッセージ

Error

1Access to XMLHttpRequest at '[アクセス先ドメイン]/secret.data' from origin '[アクセス元ドメイン]' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

httpヘッダの様子

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/07/19 02:33 編集

エラーメッセージは "No 'Access-Control-Allow-Origin' header is present on the requested resource." と言ってますが、そのあたりを Fiddler などを使って調べましたか?
Fujiman

2020/07/19 02:39

いえしていません。GoogleChromeのDevToolで”secret.data”のレスポンスヘッダをみただけです
退会済みユーザー

退会済みユーザー

2020/07/19 02:42

やる気がないなら結構です。
ockeghem

2020/07/19 03:55

secret.data のレスポンスヘッダをDevToolからでよいのでコピペして質問に追記してください。
Fujiman

2020/07/19 04:10

追加いたしました。よろしおねがいします
Fujiman

2020/07/19 04:13

やる気が無いわけではないのですが、キャプチャについてはインストールからで、また解析できるのかちょっと不安もあり、時間かかりそうですがこれからやろうとおもいます。
退会済みユーザー

退会済みユーザー

2020/07/19 04:37 編集

後で追加した画像を見ると既にキャプチャ済みだったようですね。「いえしていません」を誤解してました。すみません。 キャプチャ画像を見ると "No 'Access-Control-Allow-Origin' header is present on the requested resource." というのはその通りのようで、普通に基本認証を行う際の最初の 401 応答が返ってきています。 ockeghem さんが前のスレッドで説明された通りに実装し、以前は問題なかったということだと理解していますが、その時の要求・応答がどうなっていたか比べることはできませんか。
guest

回答1

0

ベストアンサー

レスポンスヘッダを見ると、下記の設定通りにレスポンスが返っていないことがわかります。

Header append Access-Control-Allow-Origin: http://[アクセスする側のドメイン] Header append Access-Control-Allow-Credentials: true

もし上記が有効なら、下記がレスポンスヘッダに含まれるはずです。

Access-Control-Allow-Origin: http://[アクセスする側のドメイン] Access-Control-Allow-Credentials: true

なので、.htaccessの記載内容や、Apacheのmod_headersモジュールが有効になっているか等を見直すのがよいと思います。

投稿2020/07/19 05:08

ockeghem

総合スコア11701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Fujiman

2020/07/19 05:56 編集

ありがとうございます。 サーバーの管理者に確認して報告いたします
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問