六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 54|回复: 0

JQuery的Ajax跨域请求的解决方案

[复制链接]

升级  33.33%

24

主题

24

主题

24

主题

秀才

Rank: 2

积分
100
 楼主| 发表于 2013-1-29 10:29:45 | 显示全部楼层 |阅读模式
今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发现JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式。分别是JQuery的 jquery.ajax jsonp格式和jquery.getScript方式。
        什么是jsonp格式呢?API原文:如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型。使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面。服务器端应当在JSON数据前加上回调函数名,以便完成一个有效的JSONP请求。意思就是远程服务端需要对返回的数据做下处理,根据客户端提交的callback的参数,返回一个callback(json)的数据,而客户端将会用script的方式处理返回数据,来对json数据做处理。JQuery.getJSON也同样支持jsonp的数据方式调用。
        客户端JQuery.ajax的调用代码示例:
<div style="width: 737.5333251953125px; line-height: 15.383333206176758px; font-size: 14px; color: #404040; padding: 1px !important; margin: 1em 0px !important; border: 0px !important; background-image: none !important; float: none !important; vertical-align: baseline !important; height: auto !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;" class="syntaxhighlighter  "><div style="line-height: 15.383333206176758px; padding: 0px !important; margin: 0px !important; border: 0px !important; background-image: none !important; float: none !important; vertical-align: baseline !important; height: auto !important; width: auto !important; font-size: 1em !important;" class="lines"><div style="line-height: 15.383333206176758px; padding: 0px !important; margin: 0px !important; border: 0px !important; background-image: none !important; float: none !important; vertical-align: baseline !important; height: auto !important; width: auto !important; font-size: 1em !important;" class="line alt1">
01$.ajax({
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表