分兩種情況:
從策劃到設計制作,每一步都追求做到細膩,制作可持續(xù)發(fā)展的企業(yè)網站。為客戶提供做網站、網站制作、網站策劃、網頁設計、主機域名、網站空間、網絡營銷、VI設計、 網站改版、漏洞修補等服務。為客戶提供更好的一站式互聯(lián)網解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進步。
一、您有目標網站的修改權限,可以直接使用$.getJSON();
二、您沒有目標網站的修改權限,可以使用php的fopen()函數(shù),然后再用jquery的$.get();
兩個函數(shù)的用法大同小異,根據(jù)您的情況,沒有銀行的修改權限,
那么先做一個php獲取銀行的匯率,
$.get("get.php",{"m1":"貨幣1","m2":"貨幣2"},function(data,status){
//回調函數(shù)寫這里,比如$("div").html(data);
}):
jquery自身的功能是不支持的,但是你可以基于jquery實現(xiàn)跨域post。
jquery本身只支持jsonp跨域,但是jsonp的原理限制了只能支持get。
如果想要實現(xiàn)原生jquery跨域,在你的請求地址的head里面加上Access-Control-Allow-Origin,值設置成調用該API的域名(或者*),優(yōu)點是代碼修改少,前端js代碼無需任何改動。
或者用iframe + window.name方式,比較麻煩,后端前端都要改,優(yōu)點是兼容性強。
或者用postMessage,優(yōu)點是方便,缺點IE支持的不是很好。
我們會發(fā)現(xiàn),即使后端開發(fā)好了跨域頭的輸出,前端ajax請求時候后臺還是獲取不到Cookie和Session。其實需要在ajax時候帶上參數(shù)才可以的。
或者我們可以設置jQuery的全局ajax默認設置,不需要每個請求都帶上那種參數(shù)。
$.ajax({
? url: "",
? type: "get",
? data:{p1:1,p2:2},
dataType:?"jsonp",
jsonp:?"callback",
? success: function(aaa) {
? ? ? ?console.log(aaa);
? }
});
只需要在正常的ajax代碼中加上中間的javascript代碼,就可以完成跨域的ajax請求了
POST跨域 解決方案: CORS
給服務端數(shù)據(jù)處理源碼添加Header頭。
例如是asp的語法,服務端獲取數(shù)據(jù)使用:
%
Response.AddHeader "Access-Control-Allow-Origin", "*"
response.write("[{'rid':1, 'rname':'001'}, {'rid':2, 'rname': '002'}]")
%
本地ajax:
$.ajax({
url:url,//遠程url
async :false,
type:"POST",
success:function(data){
//var a=JSON.parse(data);
var html = "";
alert(data);
},
error:function(){
alert("error");
}
});
通過script標簽來請求,原理就是在本域內的A內生成一個JS標簽,它的SRC指向請求的另外一個域的某個頁面B,這個src里面通常會加一個A頁面定義好的回調函數(shù),B返回數(shù)據(jù)即可,可以直接返回調用這個回調函數(shù),這種跨域的通信方式被稱為JSONP,此方案存在的缺陷是, script的src屬性完成該調用時采取的方式時get方式,如果請求時傳遞的字符串過大時,可能會無法正常運行。
本文標題:jquery跨域,jquery跨域修改
本文鏈接:http://aaarwkj.com/article46/dsieseg.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、品牌網站建設、企業(yè)建站、網站建設、網站制作、移動網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)