问问题
1022 次
3 回答
2
Zepto是 jQuery 的轻量级实现,它支持 JQ ajax,它非常小,可以为您节省大量时间。
于 2013-11-09T13:15:27.027 回答
1
如果我正确理解您的问题,您正在寻找向服务器发送请求,并以 json 格式取回一些数据,而不使用 jQuery(并且可能 - 不使用任何其他库)。
嗯,很简单……欢迎来到 2000 年,在“原型”、“jQuery”和其他库被发明之前,在“Ajax”一词被创造之前(尽管范式已经在使用)。
- XmlHttpRequest - 这是一个让您发送异步 http 请求并获得响应的对象。最初,这个对象(Microsoft Outlook Web Access)的发明者有 XML 内容,因此得名,但您可以传递任何类型的 MIME 类型,包括 json。此外,最初它仅作为仅在 IE 中可用的 ActiveX 实现,但现在它是“窗口”顶级对象的子对象,并且在所有浏览器上都可用。jQuery 以及基本上所有其他库都使用这个对象来支持 Ajax 功能。看看这里:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest 了解更多细节和示例。
- XmlHttpRequest 将允许您仅向页面来自的同一域发出请求。为了克服这个问题,发明了第二种技术,称为 JSON-P,它利用了一个 `` 元素,其中 src 指向其他域。诀窍是在服务器上生成一个脚本,其中数据作为回调函数的参数。回调函数在您的页面中实现。该函数的名称将是 URL 的一部分。例如:
<script type="text/javascript"
src="http://blogname.blogspot.com/feeds/posts/default?alt=json-in-script&callback=myFunc"
></script>
看看这个 URL(它会返回来自 Google 博客文章的最新帖子)。请注意,所有内容都嵌入在对函数 myFunc 的调用中,作为参数传递。
您可以将<script>
元素嵌入到代码中,也可以使用 动态生成它document.write
,甚至可以使用 DOM 操作将元素添加到 SCRIPT 类型的元素中。
于 2013-11-09T14:01:03.937 回答
1
如果您可以控制 PHP 脚本,那么最简单的(本机)方法是使用 JSON-P。
在服务器上:
<?php
$callback = $_GET['callback'];
$json = json_encode($data);
print $callback . '(' . $json . ');';
?>
在客户端:
<script>
function getJSON() {
var script = document.createElement('script');
script.src = 'http://mysite.com/page.php?callback=updateSelect';
document.getElementsByTagName('head')[0].appendChild(script);
}
function updateSelect(json) {
// do stuff with your JSON object
}
getJSON();
</script>
这会向您的远程页面发出基本的 GET 请求;该页面打印包含在您提供的回调名称中的编码 JSON,在这种情况下,它会立即调用该updateSelect
方法,并传入 JSON 对象。
于 2013-11-09T13:24:29.360 回答