8

AJAX リクエストが同じドメインに限定されるのはなぜですか? この背後にある理由は何ですか?

外部の場所からのファイルのリクエストに問題は見られません。また、XMLHTTP リクエストを作成するサーバーは、外部の場所に問題なく取得および投稿しているようです。

4

4 に答える 4

17

これを描いてください:

あなたは私のすばらしいウェブサイト www.halfnakedgirls.com に来ます。あなたは人間の生理学に関する技術文書のように見えるものを見て楽しんでいますが、あなたの背後では、JavaScript のいくつかの行が別のドメイン (たとえば、www.yourpaypallike.com) への要求を実行しています。

http://www.yourpaypallike.com/account/transfer?to=badguy@evilwebsite.com&amount=984654またはのような要求http://www.mymailprovider.com/mails/export?format=csv

禁止されている理由がわかりましたか?=)

于 2010-07-01T10:10:11.583 に答える
3

トム、「Ajaxリクエスト限定」ではありません。AJAXはJavaScriptに基づいています。セキュリティ上の理由から、JavaScriptはクロスドメインへのアクセスを禁止されています。本当にクロスドメインAjaxを実行したい場合は、ハックを実行できます。

YourPage(Ajax)----> YourServer ----> ExternalDomain

Ajaxを使用してサーバー内のページを呼び出すことができます。ドメインはサーバー側を使用して外部ドメインを呼び出し、結果を取得してからAjax応答として返されます。もちろん、ExternalDomainサーバーに対して行われたリクエストは、ブラウザのメモリにあるExternalDomainのCookieを送信せずに呼び出されます。これは、リクエストがブラウザではなくサーバーによって行われるためです。

于 2010-07-01T10:13:59.390 に答える
1

これはセキュリティ上の理由からです。Web サイトがクライアント側で必要な任意のドメインに対して AJAX 呼び出しを実行できる場合、深刻なリスクが生じます。

ただし、これを回避する方法はあります。AJAX で同じドメインの PHP スクリプトを呼び出し、別のドメインからスクリプトを呼び出して返すことができます。ただし、これはブラウザを通信媒体として使用するのではなく、Web サーバーを使用することになります。

于 2010-07-01T10:05:03.693 に答える
0

ここにあなたの質問を満たすための情報があります: http://en.wikipedia.org/wiki/Same_origin_policy

于 2010-07-01T10:01:26.923 に答える