jquery ajax 跨域

kevinlz 发布于 2013/01/14 09:22
阅读 1K+
收藏 1

【Gopher China万字分享】华为云的Go语言云原生实战经验!>>>

var qsData = {'searchWord':"1",'currentUserId':"2",'conditionBean.pageSize':"3"}; 
$.ajax({ 
     async:false, 
     url: "http://www.lzwai.com/test/ajax.php",
     type: "GET", 
     dataType: 'jsonp', 
     jsonp: 'jsoncallback', 
     data: qsData, 
     timeout: 5000, 
     success: function (json) {
          alert("success")
     }, 
     error: function(xhr){ 

alert("fail"); 

});


服务器端:

<?php
echo json_encode($_REQUEST);
?>



代码如上,firebug下 显示状态码为200,但是就是响应服务器端传回来的数据,总是显示fail,求大神解答。

加载中
0
hyxj1220
hyxj1220

php文件需要这样写 echo $_GET['jsoncallback'] .  "(" . json_encode($_REQUEST) . ")";

参考:http://www.cnblogs.com/princeoicq/articles/2217926.html

0
景愿
景愿
后台有没有接受“ jsoncallback”参数并作返回?
六只
六只
问题应该在这里,用jsonp在格式上和json有小小的区别。
0
sniperBlank
sniperBlank
js是不能跨域的。
sniperBlank
sniperBlank
回复 @六只 : 浏览器不劫持?
六只
六只
别胡说。。。
0
恺哥
恺哥
参考一下我的写法,看看能不能帮助到你。http://my.oschina.net/kzhou/blog/100731
0
ajavaloser
ajavaloser

调试了下,报这个错。
你到底想用json还是jsonp,用jsonp的话,服务器端返回的数据格式不对,只用json的话,就不用那么麻烦了,只要不跨域就行
http://www.ibm.com/developerworks/cn/web/wa-aj-jsonp1/,参考下吧,虽然是很久以前的文章了

kevinlz
kevinlz
jsonp jquery跨域的实现
0
kevinlz
kevinlz

引用来自“怱哥”的答案

后台有没有接受“ jsoncallback”参数并作返回?
加了也是一样的 
0
kevinlz
kevinlz

引用来自“hyxj1220”的答案

php文件需要这样写 echo $_GET['jsoncallback'] .  "(" . json_encode($_REQUEST) . ")";

参考:http://www.cnblogs.com/princeoicq/articles/2217926.html

还是一样的只显示fail
kevinlz
kevinlz
修改好了 谢谢~~~
0
Arrowing
Arrowing

请用getJSON

具体使用方法见手册。。。

0
kevinlz
kevinlz

引用来自“arrowing”的答案

请用getJSON

具体使用方法见手册。。。

该方法不行?
Arrowing
Arrowing
用ajax方法也是可以的啊,不过配置要复杂点 你不熟悉用getJSON就方便多了 ajax,你要考虑返回的数据是json还是jsonp jsonp的话,要确定好回调函数名称
返回顶部
顶部