まず、あなたのアプローチには根本的な問題があります。他の人がコメントで述べているように、Web サーバーはユーザーのブラウザーの情報として提示できる HTML で応答することを期待するため、フォルダーにコンテンツがある (または存在する) かどうかを単純な http (または https) Web 要求で確認することはできません。ディレクトリ要求を処理するハンドラーまたはスクリプトを作成し、使用しているプラットフォームに応じて .htaccess ルールまたはその他の書き換えシステムなどを使用してその機能をマップできます。私がこれを「問題」として特定し、それが不可能であるとまでは言わなかった理由は、(あなたが試みているように) その応答を使用可能なものに解析できるからです。そうは言っても、実際に発生しているエラーの性質ではなく、それは的外れだと思います。
発生しているエラーは、HTTPS で現在表示しているページを読み込んでいることが原因であり、作成している ajax リクエストは HTTP 経由です (エラー メッセージで示されています)。このメッセージは、リクエスト URL が HTTPS として識別されていないのではなく、URL がファイルまたはフォルダーへの Web リクエストであることをブラウザが信頼していないため、誤解を招く可能性があります。これは、フォルダーの末尾にスラッシュを追加するだけで修正できます。
$.ajax({
url: 'mapData/',
error: function() {
//Ddirectory doesn't exist
console.log("ERROR: expected directory named 'mapData'. Exiting...");
return
},
success: function() {
//Directory does exist
console.log("mapData exists..");
...
これで、Web 要求を完了する問題は解決しましたが、最初の部分で述べた問題に直面しています。サーバーは 404 エラーを返します。これは、github.io が空の (または存在しない) ディレクトリ リクエストに応答するように構成されているためです。このリクエストを処理するには、ある種のサーバー側ハンドラーが必要です。または、JavaScript が結果を解析できるように、そのフォルダーに index.html を配置するなど、別のクリエイティブを考え出す必要があります。たとえば、フォルダーに index.html をドロップすると、サーバーが 200 を返した場合はフォルダーが存在することがわかりますが、404 を返した場合はフォルダーが存在しないと見なすことができます。
まだ知られていない場合に備えて、Web サーバーは、ブラウザーがコンテンツのリバース エンジニアリングを制限できるように設計されています。ディレクトリ コンテンツを返すようにサーバーを構成できますが、既定では、ほとんどのサーバーがフォルダーを保護するため、リモート ユーザーは何らかの昇格されたアクセス許可/認証なしでサーバーを参照できません。本質的に、これがよりカスタマイズされたサーバー側のアプローチを必要とする理由は、フロントエンド コードに何か問題があるからではなく、サーバーが許可するように構成されていない限り、Web サーバーがこの種のことを許可しないように設計されているためです。セキュリティのため。