この記事では、クロスドメインと cors の概念から始まり、cors を使用してクロスドメインの Ajax データ対話を完了する Javaweb の関連コンテンツを紹介します。必要な方は詳細をご覧ください。
クロスドメイン は、ブラウザーが他の Web サイトからのスクリプトを実行できないことを意味します。これは、ブラウザの同一生成元ポリシー、つまりブラウザによって JavaScript に課されるセキュリティ制限が原因で発生します。
ajax 自体は、実際には XMLHttpRequest オブジェクトを通じてデータとやり取りしますが、セキュリティ上の理由から、ブラウザーは js コードのクロスドメイン操作を許可していないため、警告が発行されます。
cors
正式名: Cross-Origin Resource Sharing
中国語の意味: Cross-Origin Resource Sharing
Wikipedia での定義: Cross-Origin Resource Sharing (CORS) は Web ブラウザーであり、技術的なものですWeb サーバーが、Web ページがさまざまなドメインからそのリソースにアクセスできるようにする方法を定義する仕様。この種のアクセスは、同一生成元ポリシーによって禁止されています。 CORS システムは、ブラウザとサーバーが対話してクロスドメイン要求が許可されているかどうかを判断する方法を定義します。 これは、柔軟性を高めるための妥協案ですが、単にこれらの要件をすべて許可するよりも安全です。
1. Maven を介して 2 つの jar パッケージ
cors-filter と java-property-utils を参照し、 pom.xml ファイルに次のコンテンツを追加します
<!-- 跨域问题 --> <dependency> <groupId>com.thetransactioncompany</groupId> <artifactId>cors-filter</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>com.thetransactioncompany</groupId> <artifactId>java-property-utils</artifactId> <version>1.10</version> </dependency>
2. web.xml でフィルターを設定し、インポートされた jar で定義されたフィルターを使用します。 cors.allowOrigin ノードの変更に注意してください。すべてのサイトでクロスドメイン アクセスが許可されている場合は、[*] に変更できます。複数のサイトがある場合は、設定を [,] で区切ることができます。
<!-- 跨域问题 --> <filter> <description>跨域过滤器</description> <filter-name>CORS</filter-name> <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> <init-param> <param-name>cors.allowOrigin</param-name> <param-value>https://127.0.0.1:8380</param-value> </init-param> <init-param> <param-name>cors.supportedMethods</param-name> <param-value>GET, POST, HEAD, PUT, DELETE</param-value> </init-param> <init-param> <param-name>cors.supportedHeaders</param-name> <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value> </init-param> <init-param> <param-name>cors.exposedHeaders</param-name> <param-value>Set-Cookie</param-value> </init-param> <init-param> <param-name>cors.supportsCredentials</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CORS</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
3. jQuery を介してドメイン間でデータを呼び出す コード例は次のとおりです。
以上がJavaweb が cors を使用してクロスドメイン Ajax データ対話を完了する方法の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。