導航:首頁 > IDC知識 > jq跨域名

jq跨域名

發布時間:2020-12-26 08:56:07

1、如何實現jquery跨域獲取其他網站上的數據?

分兩種情來況:

一、您源有目標網站的修改許可權,可以直接使用$.getJSON();


二、您沒有目標網站的修改許可權,可以使用php的fopen()函數,然後再用jquery的$.get();


兩個函數的用法大同小異,根據您的情況,沒有銀行的修改許可權,

那麼先做一個php獲取銀行的匯率,

$.get("get.php",{"m1":"貨幣1","m2":"貨幣2"},function(data,status){

//回調函數寫這里,比如$("div").html(data);

}):

2、jquery 跨域點擊a標簽

通過script標簽copy來請求,原理就是在本域內的A內生成一個JS標簽,它的SRC指向請求的另外一個域的某個頁面B,這個src裡面通常會加一個A頁面定義好的回調函數,B返回數據即可,可以直接返回調用這個回調函數,這種跨域的通信方式被稱為JSONP,此方案存在的缺陷是, script的src屬性完成該調用時採取的方式時get方式,如果請求時傳遞的字元串過大時,可能會無法正常運行。

3、jQuery無法跨域,怎麼解決

小波,我看過你的頁面,你是一個大框架,然後左邊一個,右邊一個。對於左右2個框架是內平等的關系。容你想要在左框架獲取右框架的元素是不算跨域的。他們同屬於一個父節點。所以,你只需要先調用父節點對象,然後從父節點訪問子節點即可。像這樣:parent.frames['rightF'].document;rightF是右邊框架的名字。如果用的是ID就:parent.document.getElementById('rightF').document;

4、jquery跨域發送Post請求該怎麼處理

POST跨域 解決方案: CORS
給服務端數據處理源碼添加Header頭。
例如是asp的語法,服務端獲取數據使版用:權
<%
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");
}
});

5、jquery跨域訪問內嵌框架的input name屬性

首先你要了解怎抄么訪問iframe里的襲元素 $("#IframeID").get(0).contentWindow().document.getElementsByTagName("div")[0].innerHTML = $('input')[0].value
這一段不會立即載入出來 ,原理跟獲取iframe的高度一樣 最好外面放一個setTimeout 時間自己測試下

6、jquery1.8 跨域怎麼解決

跨域的安全限制都是指瀏覽器端來說的.伺服器端是不存在跨域安全限制的,
所以通過本機伺服器端通過類似httpclient方式完成「跨域訪問」的工作,然後在瀏覽器端用AJAX獲取本機伺服器端「跨域訪問」對應的url.來間接完成跨域訪問也是可以的.但很顯然開發量比較大,但限制也最少,很多widget開放平台server端(如sohu博客開放平台)其實就么搞的.不在本次討論范圍.
真實案例:

代碼如下:

var qsData = {'searchWord':$("#searchWord").attr("value"),'currentUserId':$("#currentUserId").attr("value"),'conditionBean.pageSize':$("#pageSize").attr("value")};

$.ajax({
async:false,
url: http://跨域的dns/document!searchJSONResult.action,
type: "GET",
dataType: 'jsonp',
jsonp: 'jsoncallback',
data: qsData,
timeout: 5000,
beforeSend: function(){
//jsonp 方式此方法不被觸發.原因可能是dataType如果指定為jsonp的話,就已經不是ajax事件了
},
success: function (json) {//客戶端jquery預先定義好的callback函數,成功獲取跨域伺服器上的json數據後,會動態執行這個callback函數
if(json.actionErrors.length!=0){
alert(json.actionErrors);
}
genDynamicContent(qsData,type,json);
},
complete: function(XMLHttpRequest, textStatus){
$.unblockUI({ fadeOut: 10 });
},
error: function(xhr){
//jsonp 方式此方法不被觸發.原因可能是dataType如果指定為jsonp的話,就已經不是ajax事件了
//請求出錯處理
alert("請求出錯(請檢查相關度網路狀況.)");
}
});

注意:$.getJSON(" http://跨域的dns/document!searchJSONResult.action?name1="+value1+"&jsoncallback=?",
function(json){
if(json.屬性名==值){
// 執行代碼
}
});
這種方式其實是上例$.ajax({..}) api的一種高級封裝,有些$.ajax api底層的參數就被封裝而不可見了.
這樣,jquery就會拼裝成如下的url get請求

jquery就會通過回調方法動態載入調用這個js tag:jsonp1236827957501(json數組);
這樣就達到了跨域數據交換的目的.

7、js,jquery怎樣跨域登陸?

jquey是不支持post方式跨域的.為啥呢?
雖然採用post+動態生成iframe是可以達到post跨域的目的,但這樣做是內一個比較極端的方容式,不建議採用.
也可以說get方式的跨域是合法的,post方式從安全形度上,被認為是不合法的, 萬不得已還是不要劍走偏鋒..

8、Jquery 跨域 傳值

頁面frame1按鈕觸發下面函數:
function sendParam(){
var txt = document.getElementById("txt").value;

window.frames["frame2"].getParam(txt);

}

頁面frame2接收參數回:
funciton getParam(txt){
//執行操作答

}

9、用jquery怎麼實現跨域請求

使用jquery.getJSON可以取到支持jsonp的服務端的數據,用插件的話我只用過FlyJSONP,這個可以實現跨域的get和post請求,你可以看下這個插件的說明

10、Jquery到底能不能實現跨域POST

jquery自身的功能是不支持的,但是你可以基於jquery實現跨域post。
jquery本身只支持版jsonp跨域,權但是jsonp的原理限制了只能支持get。

如果想要實現原生jquery跨域,在你的請求地址的head裡面加上Access-Control-Allow-Origin,值設置成調用該API的域名(或者*),優點是代碼修改少,前端js代碼無需任何改動。

或者用iframe + window.name方式,比較麻煩,後端前端都要改,優點是兼容性強。

或者用postMessage,優點是方便,缺點IE支持的不是很好。

與jq跨域名相關的知識