AJAX_javascript スキルのクロスドメイン アクセスにおける「権限がありません」エラーを解決する
同じドメイン以外の Web サイトへのアクセスは禁止されています。 http://www.google.cn、
に直接アクセスする例です。このコードを test.html に保存します。ローカルで IE で開くのは問題ありませんが、コードをサーバーにアップロードした後、問題が発生します。JS で「権限がありません」というエラーが表示されます。これを解決するにはどうすればよいですか?
以下で考えてみましょう。同じドメイン以外のアドレスにはアクセスできないため、同じドメイン内のアドレスにのみアクセスできます。同じドメイン以外の Web ページのコンテンツを動的ファイルから取得するにはどうすればよいでしょうか。同じドメインですか?私たちは依然として AJAX について考えていますが、この AJAX はサーバー側で実行されます。
一般的な考え方は次のとおりです。まず、AJAX を使用して自分のサイト内のファイルに URL (getPage.asp など) を送信します --- それを再度渡します。 in getPage.asp サーバー XMLHTTP は送信された URL にアクセスします -- 取得したコンテンツを URL が送信されたページに返します -- コンテンツを表示します
test.html ファイルから始めてコードを整理しましょう
次に、getpage.asp ファイルがあります (注: 文字化けを防ぐために、このファイルは UTF-8 形式で保存する必要があります)。
response.charset=" UTF-8"
reg="
/]*). /{0,1}>"
'関数名: GetResStr
'関数: 指定された URL の HTML コードを取得します
' パラメーター: URL - 取得する URL
function GetResStr(URL)
err.clear
dim ResBody,ResStr,PageCode,ReturnStr
Set Http=createobject("MiCROSOFT.XMLHTTP")
Http.open "GET",URL,False
Http.Send()
If Http.Readystate =4 then
If Http.status= 200 次に、
ResStr=http.responseText
ResBody =http.responseBody
PageCode=GetCode(ResStr,reg)
ReturnStr=BytesToBstr(http.responseBody,PageCode)
GetResStr=ReturnStr
End If
End If
End Function
'関数名: BytesToBstr
'関数: バイナリデータを文字に変換
'パラメータ: Body-binary data、Cset-text エンコーディングMethod
Function BytesToBstr(Body,Cset)
Dim Objstream
Set Objstream = CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream .Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset =Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
'関数名: GetCode
'機能: バイナリを文字に変換
'パラメータ: クエリする str-string、regstr-正規表現
関数 GetCode(str,regstr)
Dim Reg, serStr
set Reg= new RegExp
Reg.IgnoreCase = True
Reg.MultiLine = True
Reg.Pattern =regstr
if Reg.test(str) then '一致するものが見つかった場合
Set Cols = Reg.Execute(str)
serStr=Cols(0).SubMatches(0) '最初に一致した項目を使用します
else 'それ以外の場合は、デフォルト値 gb2312 を指定します。これは少し経済的な Lazy メソッドです。ページにエンコード形式が指定されていない場合、
serStr="gb2312"
end if
GetCode=serStr を知るのは非常に面倒です。
end function
dim url:url =request.querystring("url")
response.write GetResStr(URL)
%>
コードが整理されています。実験後、http://www.google.cn のコンテンツが正常に抽出されました。!!!これにより、「アクセス許可がない」問題が解決されました。
実際には単純なgetpage.aspは取得できますが、jsのようにDOMを動的に処理することはできません。 最初の方法を使用して http://www.baidu.com にアクセスすると、文字化けが発生します。これは、baidu エンコードが GB2312 で、XMLHTTP が UTF-8 エンコード形式を返すためです。 2 番目の方法を使用すると、エンコード形式を定義するサイトが正常に情報を返すことができる限り、このような問題は発生しません (一部の特殊なエンコードを使用するサイトは除きます)。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









タイトル: jQuery AJAX リクエストの 403 エラーを解決する方法とコード例。403 エラーは、サーバーがリソースへのアクセスを禁止するリクエストを指します。このエラーは通常、リクエストにアクセス許可がないか、サーバーによって拒否されたために発生します。 jQueryAJAX リクエストを行うときにこのような状況に遭遇することがありますが、この記事ではこの問題の解決方法とコード例を紹介します。解決策: 権限を確認します。まず、要求された URL アドレスが正しいことを確認し、リソースにアクセスするための十分な権限があることを確認します。

jQuery は、クライアント側の開発を簡素化するために使用される人気のある JavaScript ライブラリです。 AJAX は、Web ページ全体をリロードせずに、非同期リクエストを送信し、サーバーと対話するテクノロジーです。ただし、jQuery を使用して AJAX リクエストを行うと、403 エラーが発生することがあります。 403 エラーは通常、セキュリティ ポリシーまたは権限の問題が原因で、サーバーによってアクセスが拒否されたエラーです。この記事では、jQueryAJAX リクエストで 403 エラーが発生した場合の解決方法について説明します。

PHP と Ajax を使用してオートコンプリート候補エンジンを構築します。 サーバー側スクリプト: Ajax リクエストを処理し、候補を返します (autocomplete.php)。クライアント スクリプト: Ajax リクエストを送信し、提案を表示します (autocomplete.js)。実際のケース: HTML ページにスクリプトを組み込み、検索入力要素の識別子を指定します。

jQueryAJAX エラー 403 の問題を解決するにはどうすればよいですか? Web アプリケーションを開発する場合、非同期リクエストを送信するために jQuery がよく使用されます。ただし、jQueryAJAX の使用時に、サーバーによってアクセスが禁止されていることを示すエラー コード 403 が発生する場合があります。これは通常、サーバー側のセキュリティ設定が原因ですが、回避する方法があります。この記事では、jQueryAJAX エラー 403 の問題を解決する方法と具体的なコード例を紹介します。 1.作る

Ajax を使用して PHP メソッドから変数を取得することは、Web 開発では一般的なシナリオであり、Ajax を使用すると、データを更新せずにページを動的に取得できます。この記事では、Ajax を使用して PHP メソッドから変数を取得する方法と、具体的なコード例を紹介します。まず、Ajax リクエストを処理し、必要な変数を返すための PHP ファイルを作成する必要があります。以下は、単純な PHP ファイル getData.php のサンプル コードです。

Ajax (非同期 JavaScript および XML) を使用すると、ページをリロードせずに動的コンテンツを追加できます。 PHP と Ajax を使用すると、製品リストを動的にロードできます。HTML はコンテナ要素を含むページを作成し、Ajax リクエストはロード後に要素にデータを追加します。 JavaScript は Ajax を使用して XMLHttpRequest を通じてサーバーにリクエストを送信し、サーバーから JSON 形式で商品データを取得します。 PHP は MySQL を使用してデータベースから製品データをクエリし、それを JSON 形式にエンコードします。 JavaScript は JSON データを解析し、ページ コンテナーに表示します。ボタンをクリックすると、製品リストをロードするための Ajax リクエストがトリガーされます。

Ajax セキュリティを向上させるには、いくつかの方法があります。 CSRF 保護: トークンを生成してクライアントに送信し、それを検証リクエストのサーバー側に追加します。 XSS 保護: htmlspecialchars() を使用して入力をフィルタリングし、悪意のあるスクリプトの挿入を防ぎます。 Content-Security-Policy ヘッダー: 悪意のあるリソースの読み込みを制限し、スクリプトとスタイル シートの読み込みを許可するソースを指定します。サーバー側の入力を検証する: Ajax リクエストから受け取った入力を検証して、攻撃者による入力の脆弱性の悪用を防ぎます。安全な Ajax ライブラリを使用する: jQuery などのライブラリによって提供される自動 CSRF 保護モジュールを利用します。

Ajax 機能を使用して非同期データ対話を実現する方法 インターネットと Web テクノロジーの発展に伴い、フロントエンドとバックエンド間のデータ対話が非常に重要になってきました。ページの更新やフォームの送信などの従来のデータ操作方法では、ユーザーのニーズを満たすことができなくなりました。 Ajax (非同期 JavaScript および XML) は、非同期データ対話のための重要なツールとなっています。 Ajax により、Web で JavaScript と XMLHttpRequest オブジェクトを使用できるようになります
