同源策略和幾種常用的跨域資源訪問的方式

2021-09-19 12:23:46 字數 1297 閱讀 9623

response.setheader("access-control-allow-origin", "*"); // 跨域訪問

string retdata = json.tojsonstring(userlist); // userlist為要返回的資料(object),轉換為json字串。

printwriter writer = response.getwriter();

writer.write(retdata);

writer.close();瀏覽器端指令碼:

$.ajax(url, ,

error: function(jq)

});

服務端設定響應頭的access-control-allow-origin對客戶端來說不現實,並且不夠安全(對伺服器而言)。

所以可以在客戶端想辦法解決:

response.setcontenttype("text/json; charset=utf-8");

string callback = request.getparameter("callback");

string retdata = string.format("%s(%s)", callback, json.tojsonstring(userlist));

printwriter writer = response.getwriter();

writer.write(retdata);

writer.close();

前端傳送jsonp請求:

設定datatype: 'jsonp',另設定jsonp,值為函式名稱(會作為查詢引數的名稱)。

$.ajax(,

error: function(jq)

});

執行截圖見:用ajax傳送jsonp請求解決跨域資源訪問

同源策略和跨域

url由三部分組成 資源型別 存放資源的主機網域名稱 資源檔名。也可認為由4部分組成 協議 主機 埠 路徑 url的一般語法格式為 帶方括號的為可選項 protocol hostname port path parameters query fragment protocol 協議 指定使用的傳輸協...

,同源策略和跨域

當前頁面的url 和目標請求的url不一樣 是瀏覽器的一種安全策略 所謂同源就是同乙個源頭。官方同源 協議 埠號 網域名稱必須完全相同 違背同源策略就是跨域 當前頁面的url 和目標請求的url不一樣 jsonp,jsonp是非官方的跨域解決方案,只支援get請求。它借助script標籤的跨域能力來...

同源策略,跨域資源共享和JSONP

同源策略限制從乙個源載入的文件或指令碼如何與來自另乙個源的資源進行互動。這是乙個用於隔離潛在惡意檔案的關鍵的安全機制。乙個源的定義 協議 網域名稱 埠三者組合都相同,則屬於同源策略,其他都是跨域策略 跨域資源共享 cors 是乙份瀏覽器技術的規範,提供了web伺服器從不同網域傳來沙盒指令碼的方法,以...