重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
分两种情况:
从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供做网站、网站制作、网站策划、网页设计、主机域名、网站空间、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。
一、您有目标网站的修改权限,可以直接使用$.getJSON();
二、您没有目标网站的修改权限,可以使用php的fopen()函数,然后再用jquery的$.get();
两个函数的用法大同小异,根据您的情况,没有银行的修改权限,
那么先做一个php获取银行的汇率,
$.get("get.php",{"m1":"货币1","m2":"货币2"},function(data,status){
//回调函数写这里,比如$("div").html(data);
}):
jquery自身的功能是不支持的,但是你可以基于jquery实现跨域post。
jquery本身只支持jsonp跨域,但是jsonp的原理限制了只能支持get。
如果想要实现原生jquery跨域,在你的请求地址的head里面加上Access-Control-Allow-Origin,值设置成调用该API的域名(或者*),优点是代码修改少,前端js代码无需任何改动。
或者用iframe + window.name方式,比较麻烦,后端前端都要改,优点是兼容性强。
或者用postMessage,优点是方便,缺点IE支持的不是很好。
我们会发现,即使后端开发好了跨域头的输出,前端ajax请求时候后台还是获取不到Cookie和Session。其实需要在ajax时候带上参数才可以的。
或者我们可以设置jQuery的全局ajax默认设置,不需要每个请求都带上那种参数。
$.ajax({
url: "",
type: "get",
data:{p1:1,p2:2},
dataType: "jsonp",
jsonp: "callback",
success: function(aaa) {
console.log(aaa);
}
});
只需要在正常的ajax代码中加上中间的javascript代码,就可以完成跨域的ajax请求了
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");
}
});
通过script标签来请求,原理就是在本域内的A内生成一个JS标签,它的SRC指向请求的另外一个域的某个页面B,这个src里面通常会加一个A页面定义好的回调函数,B返回数据即可,可以直接返回调用这个回调函数,这种跨域的通信方式被称为JSONP,此方案存在的缺陷是, script的src属性完成该调用时采取的方式时get方式,如果请求时传递的字符串过大时,可能会无法正常运行。