跨域请求的原型插件? (到其他主持人的网站!)

时间:2011-02-25 11:06:31

标签: javascript prototypejs

是否有针对ajax跨域查询的插件或最佳做法?

我发现只有这一个:http://www.mellowmorning.com/2007/10/25/introducing-a-cross-site-ajax-plugin-for-prototype/但它对我不起作用......

编辑:我首先尝试使用原型1.7,切换到1.5后就可以了......但是为什么不再支持1.7?任何想法是如何在1.7中工作?

1 个答案:

答案 0 :(得分:2)

如果您没有找到原生Prototype解决方案,那么您可以尝试仅将jQuery用于AJAX,将Prototype用于其他所有内容。它只有29kB,您可以通过Google热链接(或other CDNs来选择)。只需在HTML中包含Prototype和jQuery,并记得调用jQuery.noConflict(),否则jQuery会使用Prototype也使用的$()函数:

<script src="//ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<script>
    jQuery.noConflict();
</script>

现在你可以在你的脚本中使用这两个类似的东西:

// using jQuery:
jQuery.ajax({
    url: 'http://...',
    type: 'POST',
    dataType: 'jsonp',
    data: {
        // ...
    },
    success: yourHandler
});

// using Prototype:
function yourHandler(data) {
    // use returned data
}

参见DEMO(适用于Prototype 1.7和jQuery 1.5)