從ajax誕生那天起,xmlhttprequest物件不能跨域請求的問題就一直存在,這似乎是乙個很經典的問題了,是由於j**ascript的同源策略所導致。
解決的辦法,大概有如下幾種:
1. 使用中間層過渡的方式(可以理解為「**」)
2. 使用<script>標籤
這個方法是利用<script>標籤中的src來query乙個aspx獲得response,因為<script>標籤的src屬性不存在跨域的問題。舉個例子:
頁面**:
doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" ""view code>
<
html
xmlns
="">
<
head
>
<
title
>ajax跨域問題
title
>
<
script
type
="text/j**ascript"
src=""
id="getaspx"
>
script
>
<
script
type
="text/j**ascript"
>
function
get(url)
}function
query()
script
>
head
>
<
body
>
<
input
type
="button"
value
="ajax跨域測試"
onclick
="query();"
/>
body
>
html
>
getdemo.aspx後台**:
using system;view codeusing system.collections.generic;
using system.linq;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;
namespace learnjs}}
這個方法又叫做ajaj或者ajax without xmlhttprequest,把x換成了j,是因為使用了<script>標籤而沒有用到xml和xmlhttprequest的緣故。
3. jquery解決方法
頁面**:
<view codehtml
>
<
head
>
<
title
>jquery學習
title
>
<
script
src="jquery-1.4.2.min.js"
type
="text/j**ascript"
>
script
>
<
script
type
="text/j**ascript"
>
$(document).ready(
function
());
});
});
script
>
head
>
<
body
>
<
button
id="btntest"
>btntest
button
>
<
div
id="result"
>
div>
body
>
html
>
遠端伺服器端js.txt中的內容為:
var dylan=
跨域Ajax解決方案
客戶端web頁面使用ajax訪問跨域url時,會被瀏覽器捕獲,一般瀏覽器會給安全提示。這樣顯然使用者使用就不是太方便。這裡提供一種可以跨域的訪問方式,但本質上並不是真的跨域,而是使用http 將跨域url轉化為本域url。具體做法是這樣的 1 編寫乙個頁面proxy.jsp,在頁面中把要訪問的跨域u...
ajax跨域解決方案總結
前端開發中經常會碰到各種跨域問題,在此做一總結。實驗 先來講講什麼是跨域?dom同源策略 禁止對不同源頁面dom進行操作。這裡主要場景是iframe跨域的情況,不同網域名稱的iframe是限制互相訪問的。只要協議,主機名,埠任意乙個不同都認為是不同源的,此時相互呼叫就會造成跨域。那麼為什麼設計之初不...
ajax 跨域cookie解決方案
什麼是session,什麼是cookie?session是由應用伺服器維持的乙個伺服器端的儲存空間,使用者在連線伺服器時,會由伺服器生成乙個唯一的 sessionid,用該sessionid為識別符號來訪問伺服器端的session儲存空間。而sessionid這一資料則是儲存到客戶 端,用cooki...