
已解决问题
谷歌liang8113用户在2016.04.20提交了关于“安徒生童话jquery的ajax和getJson跨域获取json**的实现方法”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-12-25T17:54:31。希望大家能够帮助她。详细问题描述及疑问:期待您的答案,谢了,下次有事儿别忘了找我 !
详细问题描述及疑问:期待您的答案,谢了,下次有事儿别忘了找我 !
很多开发人员在使用jquery在前端和服务器端进行**交互,所以很容易会认为在前端利用jquery就可以读取任何站点的**了。近日在进行开发时,因为要和第三方公司的一个项目进行**的**享,因为考虑多不占用服务器的资源,遂决定直接在html进行**的读取,不走服务器端进行中转了。然后正好就遇到了浏览器端跨域访问的问题。
跨域的安全限制都是指浏览器端来说的,服务器端不存在跨域安全限制的问题。
目前浏览器端跨域访问常用的两种方法有两种:
1、通过jQuery的ajax进行跨域,这其实是采用的jsonp的方式来实现的。
jsonp是英文jsonwithpadding的缩写。它允许在服务器端生成scripttags至返回至客户端,也就是动态生成j**ascript标签,通过j**ascriptcallback的形式实现**读取。
html页面端示例代码:
复制代码代码如下:
//首先要引入jquery的js包
jQuery(document).ready(function(){
$.ajax({
type:"get",//jquey是不支持post方式跨域的
async:false,
url:"http://api.taobao.com/apitools/ajax_***.do",//跨域请求的URL
dataType:"jsonp",
//传递给请求处理程序,用以获得jsonp回调函数名的参数名(默认为:callback)
jsonp:"jsoncallback",
//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
jsonpCallback:"success_jsonpCallback",
//成功获取跨域服务器上的json**后,会动态执行这个callback函数
success:function(json){
alert(json);
}
});
});