导航:首页 > 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跨域名相关的知识