您好,登錄后才能下訂單哦!
解決方案:
1,原聲ajax中提供了些屬性:
但是我沒測試過。
2:如果你項目沒有用框架,servlet實現的,那在你需要跨域請求的那個servlet配置中增加如下配置(注意紅色部分)
<servlet>
<servlet-name>abc</servlet-name>
<servlet-class>xxx.xx.xx.xx.pressAgencyCtrl</servlet-class>
<init-param>
<description>跨域訪問</description>
<param-name>accessControlAllowOrigin</param-name>
<param-value>*</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>abc</servlet-name>
<url-pattern>/kyqq</url-pattern>
</servlet-mapping>
3:如果你使用了框架,比如springmvc等,提供以下兩種方式,創建一個filter,在filter中實現,如下
view pla----------------------------------------------------------------------
package xxxxxxxxxxxxxxx;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
public class Kuayu implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
//在此處實現跨域設置
HttpServletResponse httpResponse=(HttpServletResponse) response;
httpResponse.setHeader("Access-Control-Allow-Origin", "*");//設置所有的請求都可跨域請求
httpResponse.setHeader("Access-Control-Allow-Headers", "Authentication");//認證
chain.doFilter(request, httpResponse);
}
@Override
public void destroy() {
}
}
web.xml 配置
<filter>
<filter-name>kuayuqingqiu</filter-name>
<filter-class>com.xx.xx.Kuayu</filter-class>
</filter>
<filter-mapping>
<filter-name>kuayuqingqiu</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-------------------------------------------------------------------------------------------
在spring框架4.2版本后,Spring給出了注解的方式解決問題。
即在Controller控制器中,在Controller注解上方添加@CrossOrigin注解。
最后來點名詞解釋:
Access-Control-Allow-Origin: 允許跨域訪問的域,可以是一個域的列表,也可以是通配符"*"。這里要注意Origin規則只對域名有效,并不會對子目錄有效。即http://foo.lwq/lxq/ 是無效的。但是不同子域名需要分開設置,這里的規則可以參照同源策略
Access-Control-Allow-Credentials: 是否允許請求帶有驗證信息,XMLHttpRequest請求的withCredentials標志設置為true時,認證通過,瀏覽器才將數據給腳本程序。
Access-Control-Expose-Headers: 允許腳本訪問的返回頭,請求成功后,腳本可以在XMLHttpRequest中訪問這些頭的信息
Access-Control-Max-Age: 緩存此次請求的秒數。在這個時間范圍內,所有同類型的請求都將不再發送預檢請求而是直接使用此次返回的頭作為判斷依據,非常有用,大幅優化請求次數
Access-Control-Allow-Methods: 允許使用的請求方法,以逗號隔開
Access-Control-Allow-Headers: 允許自定義的頭部,以逗號隔開,大小寫不敏感
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。