jfinal 的中使用跨域的方式

我在跨域中遇到的問題,開始用戶了是apache有個跨域的包,使用出了問題,我也沒有搞清楚什麼怎麼回事,

又換了一種跨域方式,就是在自己用了一個攔截器,又來也出問題了,這就讓我抓狂了,仔細分析是因爲,前端請求時在haeder中加了自定義的 頭 “access-token” 導致跨域失敗

具體實現

 

@Override
    public void configInterceptor(Interceptors me) {
        // TODO Auto-generated method stub //啓動攔截器
        me.addGlobalActionInterceptor(new GlobalActionCORSInterceptor());//跨域

    }

public class GlobalActionCORSInterceptor implements Interceptor {

    /**
     * 跨域CORS
     */


    @Override
    public void intercept(Invocation inv) {
      
        Controller c = inv.getController();   
        c.getResponse().addHeader("Access-Control-Allow-Origin","*");
     
        c.getResponse().addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");//允許跨域的方法

        c.getResponse().addHeader("Access-Control-Allow-Headers","access-token, mobile, power-by, token, Accept, Origin, X-Requested-With, Content-Type, Last-Modified");//表示允許的額外header
        c.getResponse().addHeader("Access-Control-Max-Age", "3600");
        c.getResponse().addHeader("Access-Control-Allow-Credentials", "true");//必須爲true
    
        //多文件上傳 getfiles必須放在最前面 否則無法取到參數
        
        if (StrKit.notBlank(c.getResponse().getContentType()) && c.getResponse().getContentType().contains("multipart/form-data")) {
            //resp.getFiles();
            c.getFile();
            c.getFiles();
        }

        inv.invoke();


    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章