通过JQuery可以跨域获取JSON数据,但必须弄清楚的是,JQuery不可以跨域获取任意JSON格式的数据,必须要通过服务端输出特定的针对JQuery跨域读取的JSON数据。你可能目前对此仍然毫无了解,没关系,本文将以最简单易懂的方式介绍这个技术,相信人人都容易读懂,并能够实际应用。
JQuery获取同域的JSON数据
首先引用jQuery库文件:
<script src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js">
</script>
jQuery代码:
var url="http://localhost:8000/user.php";
$(function()
{
$.getJSON(url,function(data)
{ alert (data.name);})
});
服务器代码(PHP):
<?php header('Content-Type:text/html;Charset=utf-8');
$arr = array(
"name" => "xiaoming",
"pass" => "123456"
);
echo json_encode($arr);
?>
服务器返回字符串:
{"name":"xiaoming","pass":123456}
JQuery获取跨域的JSON数据
首先引用jQuery库文件:
<script src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js">
</script>
jQuery代码:
var url="http://localhost:8000/user.php?jsoncallback=?";
$(function(){
$.getJSON(url,function(data){
alert (data.name);
})
});
服务器代码(PHP):
<?php header('Content-Type:text/html;Charset=utf-8');
$arr = array(
"name" => "xiaoming",
"pass" => "123456");
echo $_GET['jsoncallback']."(".json_encode($arr).")";
?>
服务器返回字符串(需要传入参数“jsoncallback”):
jQuery19003894091040769696_1505708469340({"name":"xiaoming","pass":123456})
说明,jQuery传入值每次都不一样。
JQuery获取同域和跨域JSON数据的区别
从上述两个例子看到,JQuery获取同域和跨域JSON数据的区别有两点:
1)jQuery写法不同,跨域时要多加一个参数“jsoncallback=?”
2)服务器端返回字符串的写法不同,跨域时需要用到“'jsoncallback'”的传入值,构造的字符串格式是:jsoncallback传入值(原JSON字符串),注意要用括号把原JSON字符串包住。
总结
通过本文介绍,大家都应该明白了,要jQuery跨域读取JSON数据,首先需要在服务器端构造一个特殊的JSON字符串,否则是读取不了的,好在,构造方法十分简单,文中例子一看便懂。
jQuery + Ajax 获得跨域JSON数据
前面的例子用的是 $.getJSON 来获得跨域JSON数据,其实我们用 $.ajax 的方法也同样可以的。
首先引用jQuery库文件:
<script src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js">
</script>
jQuery代码:
<script type="text/javascript">
$(function(){
$.ajax({
type: 'get',
url: 'http://localhost:8000/user.php?jsoncallback=?', dataType: 'jsonp',
jsonp: "jsoncallback",
success: function(data) {
alert("用户名:"+ data.name+" 密码:"+ data.pass);
}
});
}) </script>
特别注意,dataType 是 jsonp 而不是 json 。
分享到:
相关推荐
// 使用$.getJSON进行跨域请求 $.getJSON('http://otherdomain.com/api', {param1: 'value'}, function(data) { console.log(data); }, 'jsonp'); ``` 在这个例子中,jQuery会自动处理JSONP请求,添加`callback=?`...
// 使用$.get发送GET请求 $.get('http://example.com/api/data', {key1: value1, key2: value2}, function(response) { // 处理响应数据 }); ``` 在处理XML数据时,`$.ajax()`和`$.get()`特别有用。例如,如果你从...
在使用$.get()方法时,我们还需要注意一些潜在的问题。例如,网络请求可能会因为各种原因失败,比如网络错误或服务器不可达。因此,为了编写健壮的代码,我们需要在回调函数中处理这些错误情况。 另一个需要注意的...
使用$.ajax()方法时,可以结合jQuery的其他功能,如`.done()`、`.fail()`、`.always()`等,来处理请求的成功、失败和完成情况。同时,可以通过`$.ajaxSetup()`来设置全局的默认选项。 总的来说,$.ajax()方法是...
$.getJson()方法在内部仍然使用$.ajax()方法,并将"dataType"参数设置为"json"。它的参数同样包括:"url","data","success",以及"beforeSend"等,但更加简化,更易于使用。 在处理JSONP(JSON with Padding)...
本文将深入探讨如何使用$.ajax调用后台的.aspx页面,以及涉及到的相关知识点。 一、$.ajax简介 $.ajax是jQuery库中的一个核心方法,它允许我们执行HTTP请求,如GET和POST,与服务器进行通信。此方法支持JSON、XML、...
其中,`$.ajax()`方法是实现异步数据请求的核心功能之一,它简化了与服务器交互的过程,使得前端页面无需刷新即可更新数据或状态。下面我们将详细解析`$.ajax()`方法中的各个参数及其使用场景。 #### 1. `url` - ...
在jQuery库中,$.post, $.get和$.getJSON是用于执行AJAX(Asynchronous JavaScript and XML)请求的三种主要方法,这些方法使得前端与后端服务器进行异步数据交互成为可能,无需刷新整个页面。接下来,我们将详细...
值得注意的是,使用$.getJSON时,通常还带有一个回调函数的参数名,通常是"callback",用于处理JSONP(JSON with Padding)请求。 3. 原生JavaScript实现JSONP: JSONP(JSON with Padding)是一种数据交换格式,它...
jQuery的Ajax方法主要包括`$.ajax()`, `$.get()`, `$.post()`, `$.getJSON()`等。这些方法都提供了一种优雅的方式来发送和接收数据,同时提供了丰富的配置选项来处理各种情况。 ### 1. `$.ajax()` `$.ajax()`是...
jQuery的`$.ajax()`方法是进行异步数据请求的核心,其中`dataType`属性用于指定期望服务器返回的数据类型。常见的取值有: 1. `xml`: 返回XML文档,jQuery可以进一步处理。 2. `html`: 返回HTML文本,其中的script...
在本文中,我们将探讨如何使用jQuery的`$.getJSON`方法进行跨域Ajax请求,并通过一个简单的预约登记接口的示例来展示其实现过程。首先,理解`$.getJSON`是jQuery库提供的一个便捷方法,用于异步获取JSON格式的数据,...
具体实现过程中,开发者可能使用了jQuery的`$.ajax()`或`$.getJSON()`方法发起跨域请求。例如: ```javascript $.ajax({ url: 'http://example.com/weather', type: 'GET', dataType: 'jsonp', success: ...
在jQuery中,我们可以使用`.ajax()`或`.getJSON()`方法,加上`jsonp`类型和`callback`参数来发起JSONP请求。例如: ```javascript $.ajax({ url: 'http://example.com/data', type: 'GET', dataType: 'jsonp', ...
$.getJSON 是 jQuery 提供的一种 AJAX 方法,用于向服务器请求 JSON 数据并在数据加载成功后执行回调函数。这个方法特别适用于跨域请求,因为 JSONP(JSON with Padding)协议允许绕过同源策略,使得 JavaScript ...
1. 使用$.ajax()、$.getJSON()、$.get()或$.post()发起请求。 2. 设置`dataType: 'json'`,让jQuery自动解析返回的数据。 3. 在回调函数中处理解析后的JSON数据。 4. 遵循同源策略,处理可能出现的跨域问题。 在...
本例中的“getJSON”很可能指的是jQuery库中的getJSON方法,它支持JSONP机制来实现跨域数据获取。 JSONP的工作原理是利用`<script>`标签不受同源策略限制的特点,通过动态创建`<script>`元素并设置其src属性为...