per*_*ter 4 jquery mootools cross-domain
在我永恒的内部斗争中,是否留下mootools或跳转到jQuery我在jQuery文档中找到了引起我注意的东西,这就是jQuery可以向不同的域请求JSON,这通常是浏览器禁止的.
我已经看到了跨域的一些变通方法,但从来没有跨域,我真的很兴奋,首先我认为我是服务器相关的但是尝试了一点点我已经看到从jQuery做同样的JSON请求关于Mootools的文档不起作用!
这适用于jQuery:
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
function(data){
$.each(data.items, function(i,item){
$("<img/>").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});
Run Code Online (Sandbox Code Playgroud)
这不是Mootools:
var jsonRequest = new Request.JSON({url: "http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", onComplete: function(person, responseText){
alert(responseText);
}}).get({});
Run Code Online (Sandbox Code Playgroud)
我该如何复制这种行为?是什么导致的?
jQuery Doc:http: //docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback Mootols Doc:http://mootools.net/docs/Request/Request.JSON
Jak*_*čar 11
在页面上说它是JSONP.
JSONP是一种技巧,服务器不是返回通常的响应,而是将其包装到用户提供的方法的方法调用中,例如,而不是:
{"foo": "bar", "baz":"bah"}
它将返回:
temporaryCallbackFunctionName({"foo": "bar", "baz":"bah"});
jQuery定义临时回调函数并插入一个<script src="..."></script>元素,该元素不受同一原始策略的限制.
加载脚本时,会执行该功能,就是这样.
缺点是,如果服务器是邪恶的(或被黑客攻击),它现在可以在浏览器中执行任意代码.
更多信息在这里.
| 归档时间: |
|
| 查看次数: |
28490 次 |
| 最近记录: |