使用JQuery跨域请求

本文介绍了在JavaScript中如何使用JQuery的getJSON方法进行跨域请求,特别是在遇到跨域错误时的解决办法。作者在尝试通过document.write()方法失败后,转向使用JQuery的getJSON。在解决过程中遇到了Uncaught SyntaxError: Unexpected token : 的错误,最后通过修改返回数据格式和添加Access-Control-Allow-Origin头成功实现了跨域请求。
摘要由CSDN通过智能技术生成

今天把一些服务的相关数据放到了本地的另一台服务器上,需要弄个接口去读取这服务器上的文件,但是这服务器只放在内网使用,所以用curl是不行的了,就想着要用js去访问。


1、一开始是想着使用document.write()这个方法:

代码:document.write("php访问地址+参数"); ......

然后php返回数据是一个可执行的js语句,如:echo "var returnData = {'flag':1}";

然而用这个方法会把页面的其他东西都清掉,所以这个方法是不行的了。

否定这个方法后,只能在网上找了一下其他方法。


2、在网上搜索“js 跨域”,然后找到了JQuery的getJSON方法:

1)根据网上给出的例子,很快就写出了以下代码:

JS:var url = "地址+参数" + "&callback=?";
$.getJSON(url, function(data){
// 返回之后要做的事
return;
});

PHP:echo '{"flag":1}';

然后很兴奋地刷新页面。然而它报错了:Uncaught SyntaxError:Unexpected token : 

我去!就是这个错误,我调了2小时。。。

2)黎明的曙光:

在群里问了也问了,百度也百度了。正当我心灰意冷准备放弃的时候,突然间就看到了一丝刺眼的光芒照进我的眼里。

地址在这里:http://blog.163.com/lvshutao@126/blog/static/164637467201442253942499/?latestBlog,你们自己去看吧,完,开个玩笑

先感谢一下这位哥们,我的错误正如这位哥们写到的,少了点返回数据,然后我把返回数据按照这个来加上,就可以了,稍有不同的就是我传的参数叫callback,不同于这哥们的jsoncallback,所以要改一下,最终代码是:

JS: var url = "地址+参数" + "&callback=?";
$.getJSON(url, function(data){
// 返回之后要做的事
return;
});

PHP: $b = json_encode($returnArray);
header("Access-Control-Allow-Origin:ht-tp:xxx.cn");//(1)
echo "{$_GET['callback']}({$b})";//(2)


整篇文章的重点,其他的都是废话 ↑

PS:我用的JQuery是jquery-1.8.3.min.js这个版本


第一次使用JQuery,所以不熟,以后会多研究,完!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值