1. 程式人生 > >APPCAN開發中涉及到的跨域解決方案

APPCAN開發中涉及到的跨域解決方案

方案一:採用JQUERY自帶的callback方法

即在URL傳參的時候傳一個引數callback=?過去,在伺服器端,獲取callback引數的值,作為函式名,將需要返回的值作為函式引數,然後返回這段JavaScript程式碼。這種方法需要額外的對callback進行處理,當不需要跨域的時候,要麼重寫處理方法,要不把不跨域當跨域處理,個人不太喜歡這樣做。

方案二:採用設定Header的方案

即設定允許跨域訪問的域名,如:在Servlet中:response.setHeader("Access-Control-Allow-Origin","http://www.csdn.net");

但是,有時候我們採用集成了的框架開發,不需要寫Servlet,這時可以在過濾器中設定,以下程式碼僅供參考:

package com.gotoip4.agripert2.common.filter;


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 ACAOFilter implements Filter {
	
	protected FilterConfig filterConfig = null;

 
	
    public void destroy() {

 
        this.filterConfig = null;

    }

 
	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
            FilterChain chain) throws IOException, ServletException {
			HttpServletResponse response = (HttpServletResponse) servletResponse;
			response.setHeader("Access-Control-Allow-Origin","*");
			chain.doFilter(servletRequest, servletResponse);
			
	}
	
	public void init(FilterConfig filterConfig) throws ServletException {
		this.filterConfig = filterConfig;
		 
		 
	}

}

在PHP中可以這樣(僅供參考):

echo header("Access-Control-Allow-Origin:*");


相關推薦

APPCAN開發涉及到的解決方案

方案一:採用JQUERY自帶的callback方法 即在URL傳參的時候傳一個引數callback=?過去,在伺服器端,獲取callback引數的值,作為函式名,將需要返回的值作為函式引數,然後返回這段JavaScript程式碼。這種方法需要額外的對callback進行處理

網頁請求 同源策略、解決方案

  品習知識點 簡單表述幾個概念,詳解@度娘。 1、同源策略,瀏覽器最核心的安全功能,在無授權情況下,只允許讀寫相同源的資源。其中源(Origin)指的是協議、域名、介面,同源即三者相同。 2、預檢請求,瀏覽器出於安全策略,在跨域請求資料時候預先發起請求,以知是否可跨域請求資料的請求。 關

django同源策略和解決方案

一  同源策略 1.1何謂同源? 如果兩個頁面的協議,埠(如果有指定)和域名都相同,則兩個頁面具有相同的源。 舉個例子: 下表給出了相對http://a.xyz.com/dir/page.html同源檢測的示例:  1.2什麼是同源策略? 同源策略是瀏覽

ASP.NETJSONP的兩種實現以及其他解決方案的簡單實現 ASP.NETJSONP的兩種實現以及其他解決方案的簡單實現

ASP.NET中JSONP的兩種實現以及其他跨域解決方案的簡單實現    jQuery中JSONP的兩種實現方式:    都很簡單,所以直接上程式碼!    前臺程式碼如下: &l

JSON解決方案收集

get ogl obb 本地 allow con mesa 跨域請求 loader 最近面試問的挺多的一個問題,就是JavaScript的跨域問題。在這裏,對跨域的一些方法做個總結。由於瀏覽器的同源策略,不同域名、不同端口、不同協議都會構成跨域;但在實際的業務中,很多

前端如何去做解決方案

時也 for 前後端 define 影響 list nts 告訴 iframe 前言 那些你,你常用的跨域解決方案除了jsonp 之外,還有其他的嗎?今日早讀文章可以告訴你,本文由 金蝶 @scq000授權分享。 正文從這開始~ 瀏覽器在請求不同域的資源時,會因為同源策略的

前端常見解決方案(全)

-type crm api war str bsp 斷開 jquery 數據塊 什麽是跨域? 跨域是指一個域下的文檔或腳本試圖去請求另一個域下的資源,這裏跨域是廣義的。 廣義的跨域: 1.) 資源跳轉: A鏈接、重定向、表單提交 2.) 資源嵌入: <link

前端常見解決方案

自定義 兩個 ech cors onload 消息 strong put 普通 什麽是跨域? 跨域是指一個域下的文檔或腳本試圖去請求另一個域下的資源,這裏跨域是廣義的。 廣義的跨域: 1.) 資源跳轉: A鏈接、重定向、表單提交 2.) 資源嵌入:<lin

spring mvc的解決方案

增加 是否 strac inf oss ref nds sso option 什麽是跨域 一句話:同一個ip、同一個網絡協議、同一個端口,三者都滿足就是同一個域,否則就是跨域。 為什麽非得跨域 基於兩個方面: a. web應用本身是部署在不同的服務器上 b.基於開發的角度

前端常見的解決方案

params 分離 true local img 原生 AI spa 共享 什麽是跨域: 一個域名下的文檔或者腳本試圖請求另外一個域名的下的資源 廣義的跨域: 資源跳轉:a鏈接、重定向、表單提交 資源嵌入:<link> <script> &

同源策略、解決方案

color 動態 一個 cati req 回調函數 IV 解決方案 參數傳遞 一、定義 1、什麽是源? 源(origin)就是協議、域名和端口號。以上url中的源就是:http://www.company.com:80若地址裏面的協議、域名和端口號均相同則屬於同源。以下是相

【PHP】Ajax解決方案 、jsonp、cors

code col 服務器 實現 官方 跨域傳輸 ref 響應 非官方 參考文章: 1、https://blog.csdn.net/u014727260/article/details/72793459 (後臺java,實際上差不多) 2、 如何解決ajax跨域傳輸 數據的問

ajax 解決方案

AC head -a PE web cto options 方案 col 第一步:配置Php 後臺允許跨域 <?php header(‘Access-Control-Allow-Origin: *‘); header(‘Access-Control-Allow-He

瀏覽器同源策略,及解決方案

ebo 同名 () hash 站點 題解 先來 說了 是否 一、Origin(源) 源由下面三個部分組成: 域名 端口 協議 兩個 URL ,只有這三個都相同的情況下,才可以稱為同源。 下來就以 "http://www.example.com/page.html" 這個

Mac上Chrome瀏覽器解決方案

一個 移除 跨域問題 data google 導致 b- 更改 leo 現在比較新的瀏覽器在本地調試時AJAX請求,基本都會有跨域問題。相應的解決方案也挺多的,工具也不少。像charles等抓包工具等。不過最簡單的就是移除瀏覽器的同源限制。 我們要做的第一步,就是創建一個文

同源策略防解決方案

限制 out ole cors cti type com baidu pip 跨域 由於同源策略導致的不同源網站間頁面腳本無法互相訪問。 同源策略 出於安全性考慮,一個網站的腳本不能訪問另一個網站的請求。除非它們的協議號,域名,端口號相同。 防跨域 同源策略條件過於嚴苛,很

常見的解決方案以及原理

一、JSONP(適用於單項跨域請求) 原理:因為瀏覽器對script不存在同源策略,所以script可以跨域請求外部資源,返回的資料是json格式。 缺點:1、只能傳送get請求,無法傳送post請求  2、無法判斷請求成功還是失敗   二、porxy代理

SignalR 解決方案全面

原文: SignalR 跨域解決方案全面 SignalR 分:PersistentConnection和Hub 2種模式。 跨域又分:UseCors和JsonP  2種方法 所以例子寫了4種。 核心程式碼: UseCors //PersistentConnection Mode

前端JS解決方案

JS跨域請求 這裡說的js跨域是指通過js在不同的域之間進行資料傳輸或通訊,比如用ajax向一個不同的域請求資料,或者通過js獲取頁面中不同域的框架中(iframe)的資料。只要協議、域名、埠有任何一個不同,都被當作是不同的域 跨域解決方案 CORS方案 COR

【讀書筆記】Web開發

文章:為什麼給你設定重重障礙?講一講Web開發中的跨域 總結: 一、什麼是跨域?     二、為什麼不讓跨域? 因為在web互動的環境中,只能保證請求發自某個使用者的瀏覽器,卻不能保證請求本身是使用者自願發出的, 這就是跨站請求偽造(CSR