js跨域問題

2021-07-31 03:38:29 字數 956 閱讀 1799

跨域問題,網上資料很多,但是太多複製貼上,還錯誤百出,這裡我總得說一下吧

第二個方法就是cros跨域,服務端要設定響應頭如下

header("access-control-allow-credentials", true)

header("access-control-allow-origin", request.getheader("origin"))

注意
"access-control-allow-origin"不能設定成"*"

然後就是客戶端,現在的瀏覽器一般都會支援,直接用原生js寫的話如下

function createcorsrequest(method,url)else if(typeof xdomainrequest != "undefined")else

xhr.withcredentials = true;

return xhr;

}var request=createcorsrequest("post","請求的url");

if(request);

request.send();

}

其中   xhr.withcredentials = true; 是跨域關鍵

如果用jquery寫的話就比較簡單了

$.ajax(,

success : function(msg)

});

如果要攜帶cookie的話,cookie設定成主網域名稱,就可以攜帶了,當然這是在主網域名稱相同的情況下,二級網域名稱之間的跨域才可以傳遞cookie

這裡我要強調一下用jquery寫的話雖然簡單,但是要注意jquery外掛程式版本,如果是低版本或者min版本,有可能會不支援這種cros跨域,博主1.7.3的可以用,我曾經就因為用的低版本的min版本,怎麼也成功不了,希望猿友們少走點彎路!

js跨域問題

什麼是跨域?概念 只要協議 網域名稱 埠有任何乙個不同,都被當作是不同的域。1.document.domain 跨子域 這個是範圍最小的乙個。比如a.example.com 中寫了乙個iframe,其中src example.com 但是因為是不同域的就無法寫js獲取iframe中的document...

js跨域問題

報錯資訊 火狐上的錯誤 permission denied to access property document window.parent.document find database name val databasename 谷歌上的錯誤 uncaught securityerror blo...

js的跨域問題

網域名稱不同,埠不同 都是跨域。比如現在開啟的 是 a,在a 的js 中,要訪問 b的資源 那麼在b 服務端,要設定httpheader,允許在a 訪問b的資源,否則瀏覽器會不接收b 的資源。http請求是能達到b的,只是瀏覽器放棄了資料。access control allow origin ac...