jQuery跨域心得
来源:互联网 发布:编程培训班多少钱 编辑:程序博客网 时间:2024/06/06 01:45
一个项目由于用了二级域名,但是需要请求的文件位于www域名下,几次请求没在firebug看到任何请求信息的情况下我突然意识到,我也碰到了这个该死的跨域请求的问题,于是google之,网上找到了几乎相同的解决方案,用jQuery的json方式解决,我多次试验,最后甚至原封不动地拷来代码,均失败,才最终在另一处博客发现原来光客户端请求也不够,服务器端不能光返回json数据了,而是要返回一个回调函数,这才解释了为什么客户端为什么要以get方式送一个 callback进去,这样,前端+后端,立刻成功,代码如下:
前可以采用这三种方式请求,大同小异,看个人爱好了:高亮部分是需要注意的
假设要跨域请求的网址为 http://www.b.com/demo.php&action=funcname
则应写成请求如下网址:var url= "http://www.b.com/demo.php&action=funcname&callback=?";
1,经典方式:
$.ajax({
type : "GET",
url : url,
dataType : "jsonp",
jsonp: 'callback',
success : function(json){
//do something here;
}
});
2,json方式,是方法一的高级封装
$.getJSON(url, function(json){/*do something here;*/});
3,我比较别扭,喜欢用这一种,因为毕竟get是用得最多的,也最有感情啦
$.get(url,function(json){/*do something here;*/},”jsonp”);
好了,这不是重点,我照着这三种方法都写过,全失败,原来需要服务端返回的是
JQUET0988788({"account":"XX","passed":"true","error":"null"});
//(字符串)这样的代码,而不是
{"account":"XX","passed":"true","error":"null"},
函数名就是你在服务端 request一下callback就可以了,两个括号也要加上,注意,是拼成字符串出去,然后,保你立刻成功
如:echo $_REQUEST['callback'].'('.$str.')';
总结,用JSONP要做两件事:
1/请求地址加参数:callback=?
2/服务器段把callback的值作为方法名传回来,如”JQUET098788(json)”
当然,别忘了这种情况下只能返回 json数据了。
- jQuery跨域心得
- jQuery跨域心得
- js跨域交互(jQuery+php)之jsonp使用心得
- js跨域交互(jQuery+php)之jsonp使用心得
- JS跨域交互(jQuery+php)之jsonp使用心得
- jquery心得
- jQuery使用心得
- jquery validate 校验心得
- jquery datepicker 使用心得
- jquery入门心得
- jquery datepicker 使用心得
- JQuery选择器使用心得
- JS 、 jquery心得
- jquery mobile使用心得
- Jquery使用心得
- jquery easyui使用心得
- JS,JQuery使用心得
- jquery autocomplete 使用心得
- GCD总结
- jquery验证密码强度的插件
- 生成10000行50列的5位随机整数.py
- 简单说Binder(1)
- Freemarker页面语法
- jQuery跨域心得
- LAPLACE INTERPOLATION
- java:使用匿名类直接new接口 或者 new类
- 【慕课笔记】第一章 异常与异常处理 第6节 经验总结
- HDU-1018
- codeforces 628E Zbazi in Zeydabad(线段树||树状数组优化)
- HDU4416Good Article Good sentence 题解&代码
- mysql-connector-java-5.0.3-bin.jar中的Preparedstatement居然没有isClosed()方法
- GDI编程与动态链接库