ajax跨域請求能夠提交表單,可是沒法接收到返回數據,返回數據會被瀏覽器攔截。javascript
JSONP只支持GET請求,沒法提交混合表單html
在響應頭中設置參數能夠令瀏覽器不攔截返回的數據,java
例:A服務器地址:www.aaa.com ; B服務器地址:www.bbb.comjquery
用瀏覽器打開A服務器的網頁a.html,在a.html中經過ajax提交混合表單到B服務器的b.htm接口;ajax
b.htm接口能夠在返回數據時,設置響應頭(JavaEE)json
response.setHeader("Access-Control-Allow-Origin", "http://www.bbb.com"); //或者,*是通配符,表示全部 response.setHeader("Access-Control-Allow-Origin", "*");
這樣a.html就能接收到b.htm返回的數據跨域
防止CSRF(Cross-site request forgery)攻擊瀏覽器
同源政策:瀏覽器中的cookie、storage、等都是經過域來劃分的安全
A網頁設置的 Cookie,B網頁不能打開,除非這兩個網頁協議相同、域名相同、端口相同服務器
使用js是能夠調用另外一個頁面的js的
newWindow = window.open("homepage.html", "", "width=1024,height=768"); newWindow.document.getElementById("main_iframe").src = '/SxtOffical/jsp/charge/charge.htm //同域的頁面共享storage,能夠經過storage創建兩個頁面間js的聯繫 function change(){ localStorage.time=new Date().getTime(); } window.onstorage=function(e){ location.reload(); }
可是JavaScript出於安全方面的考慮,不容許跨域調用其餘頁面的對象。
2.有哪些解決跨域訪問的方法