$.getJSON()可以理解为特殊形式的$.ajax(),手册里的说明好复杂,这里只记录一下用到的跨域请求。

先说在同一域名下,js发送数据到php,php返回JSON数据:

$.getJSON('save.php',$('#forms').serialize(),function(result){
alert(result.name);
})

save.php:

echo json_encode(array('name' => 'Jason', 'gender' => 'Male', 'location' => 'SZ'));
//输出:{"name":"Jason","gender":"Male","location":"SZ"}

jQuery会直接解析返回的JSON数据,alert出name。

但是如果请求其他域名的数据(这里有说几种跨域的情况,没有一一测试),把函数里的url改成 http://xxx.xxxxxx.xxx/save.php,就没这么简单,用同样的代码没反应。

查了很多发现需要在url后面加上?callback=?,即传递一个callback参数,jQuery会把?替换成函数名称(具体原因没有深入研究),可以抓包看一下函数名为

相应的,服务端返回的数据应该改为

echo $_GET['callback'] . '(' . json_encode(array('name' => 'Jason', 'gender' => 'Male', 'location' => 'SZ')) . ')';
//输出:jQuery16409719707807525992_1388128688468({"name":"Jason","gender":"Male","location":"SZ"})

这样,前端JS就可以正常解析JSON数据了。

用 jQuery.getJSON() 跨域请求 JSON 数据的更多相关文章

  1. AJAX跨域请求json数据的实现方法

    这篇文章介绍了AJAX跨域请求json数据的实现方法,有需要的朋友可以参考一下 我们都知道,AJAX的一大限制是不允许跨域请求. 不过通过使用JSONP来实现.JSONP是一种通过脚本标记注入的方式, ...

  2. Jquery 跨域请求JSON数据问题

    制作网站时,我们有时候为了方便快捷会调用别人写好的API接口,或者是调用一些免费的API接口获得JSON数据.比如天气,农历,网站备案信息查询等. 但是,这些API接口都是别人自己服务器上的,我们要调 ...

  3. [ 转 ]jquery的ajax和getJson跨域获取json数据

    目前浏览器端跨域访问常用的两种方法有两种: 1.通过jQuery的ajax进行跨域,这其实是采用的jsonp的方式来实现的. jsonp是英文json with padding的缩写.它允许在服务器端 ...

  4. jquery的ajax和getJson跨域获取json数据

    目前浏览器端跨域访问常用的两种方法有两种: 1.通过jQuery的ajax进行跨域,这其实是采用的jsonp的方式来实现的. jsonp是英文json with padding的缩写.它允许在服务器端 ...

  5. jquery跨域请求json数据

    //服务端生成json数据json.php <?php $json=array("Volvo","BMW","SAAB"); $cb ...

  6. jquery $.getJSON()跨域请求

    以前总是没搞明白是怎么回事,现在是迫不得已,就仔细看了看说明文档,终于测试成功了,记下   1,同一域名下和其他的请求可以是一样的 js: 代码如下: var url="http://loc ...

  7. 跨域请求json数据

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 使用JSONP,jQuery的ajax跨域获取json数据

    网上找了很多资料,写的不错,推荐下: 1.深入浅出JSONP--解决ajax跨域问题 (http://www.cnblogs.com/chopper/archive/2012/03/24/240394 ...

  9. Jquery跨域请求php数据(jsonp)

    Jquery跨域请求php数据 我们一般用到ajax的时候是在同服务器下,一般情况下不会跨域,但有时候需要调用其他域名或ip下的数据的时候,遇到跨域请求数据的时候. 今天在工作中碰到javascrip ...

随机推荐

  1. Cordova 代码热更新 - 简书

    原文:Cordova 代码热更新 - 简书 Cordova 代码热更新 [图片上传失败...(image-a19be7-1521624289049)] 基于 Cordova 框架能将网页应用 (js, ...

  2. 反编译Jar包

    Jar 包(Java Archive)是对 Java 程序的打包,它可能包含源码,也可能没有. 对于有包含源码的 Jar 包,在 Eclipse 工程里设定好 source code 路径后能直接查看 ...

  3. elasticsearch start

    启动.停止服务 默认官方版启动: linux:./bin/elasticsearch start window:直接运行bin/elasticsearch.bat 默认官方版停止: linux:kil ...

  4. TCP/IP之封装,分用,server模型

    ios讨论群1群:135718460 1.封装 当应用程序用TCP传送数据时,数据被送入到协议栈中,然后通过每一层直到被当做一串比特流送入网络. 2.分用 当目的主机收到以太网数据帧时,数据就開始从协 ...

  5. Qt 格式转换问题 记录(好多方法)

    用Qt经常头痛于一些格式不能通用的问题 在此记录备用 1 (20120112)QString转为Char * QString *str; char *a; str="hello word ! ...

  6. C++ Primer 学习笔记_104_特殊工具与技术 --嵌套类

    特殊工具与技术 --嵌套类 能够在还有一个类内部(与后面所讲述的局部类不同,嵌套类是在类内部)定义一个类,这种类是嵌套类,也称为嵌套类型.嵌套类最经常使用于定义运行类. 嵌套类是独立的类,基本上与它们 ...

  7. WPF Windows背景透明其中的文字保持不透明

    原文:WPF Windows背景透明其中的文字保持不透明 版权声明:本文为博主原创,未经允许不得转载.交流.源码资料加群:161154103 https://blog.csdn.net/mpegfou ...

  8. xmarin live player 连接 IOS以及安卓实现实时效果查看

    原文:xmarin live player 连接 IOS以及安卓实现实时效果查看 在之前有介绍过xamarin 单独IOS项目开发的运行环境搭建,但是这段时间我看到了xmarin forms 3.0  ...

  9. .net reactor 学习系列(三)---.net reactor代码自动操作相关保护功能

    原文:.net reactor 学习系列(三)---.net reactor代码自动操作相关保护功能         接上篇,上篇已经学习了界面的各种功能以及各种配置,这篇准备学习下代码控制许可证. ...

  10. Why aren't more desktop apps written with Qt?(quora.com系列文章)

    As far as I know and have understood in my experience with Qt, it's a very good and easy to learn li ...