ホームページ >ウェブフロントエンド >jsチュートリアル >AJAX クロスドメインの問題に対する完璧なソリューション_JavaScript スキル
AJAX が誕生した日から、ドメインを越えて XMLHttprequest オブジェクトをリクエストできないという問題は常に存在していました。これは非常に古典的な質問のようです。これは JavaScript の同一生成元ポリシーによって発生します (ここでは詳しく説明しません)。
おそらく解決策は次のとおりです:
1. 中間層遷移メソッドを使用します (「エージェント」として理解できます):
中間遷移は、明らかに、異なるドメインのサーバーとの AJAX 通信の途中に遷移層を追加することです。この遷移層には、PHP、JSP、C などのネットワーク通信機能を備えた任意の言語を使用できます。中間層から異なるドメインのサーバーへのデータ読み取り操作が実行されます。 asp.net を例に挙げると、別のドメインの asp.net と通信する必要がある場合、クライアントの xmlhttprequest は最初にこのドメインの asp.net にクエリを実行し、次にこのドメインの asp.net が asp.net と通信します。通信用の .net と、このドメインの asp.net 応答出力 (応答) の考え方はおそらく次のとおりです。読者は明確に理解していると思います。
2. <script> タグを使用します </script>
この方法では、<script> タグの src を使用して aspx にクエリを実行し、応答を取得します。これは、<script> タグの src 属性にはクロスドメインの問題がないためです。 </script>
わかりやすくするために例を示します:
远程服务器端js.txt中的内容为:
var Dylan= {name:"Dylan",email:Dylan@163.com}
笔者感觉这种方式更加简洁。呵呵。当然,读者可以根据实际情况,任意选择实现方式。
怎么样,其实很简单吧,我看到过很多人不愿意去正视ajax所存在的技术瓶颈,其实AJAX更应该是Ajax而不是AJAX,突出第一个A是想强调其实AJAX发扬的是一种异步传输的方法,而不是具体到底使用了哪种技术。
其实,在json数据格式之后,有一种更牛X的“jsonp”,也可以实现ajax的跨域通信。其实jsonp不是一种数据格式,只是对我介绍的第二种方式做了改进。从jQuery1.2 版本开始,jQuery 拥有对 JSONP 回调的本地支持。