Javascript 检索纯文本的跨域ajax同步调用
我正在寻找一个跨浏览器的解决方案,能够使跨域同步调用。我想做的是调用一些返回纯文本(没有JSON或XML)的PHP服务。重要的是调用必须是同步的,而不是异步的Javascript 检索纯文本的跨域ajax同步调用,javascript,ajax,jquery,security,Javascript,Ajax,Jquery,Security,我正在寻找一个跨浏览器的解决方案,能够使跨域同步调用。我想做的是调用一些返回纯文本(没有JSON或XML)的PHP服务。重要的是调用必须是同步的,而不是异步的 你们知道这件事吗?谢谢 如果您对不受您控制的站点进行AJAX调用,则只能使用类似于p-JSON的东西进行跨域调用,这意味着:不是纯文本 进行跨域AJAX调用的最佳方法是在服务器上运行一个简单的代理脚本,并让它为您获取远程页面。如果您不明白,请在这里给我留言,我会帮您的,这就像4行PHP(或服务器端使用的任何东西)。您可以使用$.ajax和
你们知道这件事吗?谢谢 如果您对不受您控制的站点进行AJAX调用,则只能使用类似于p-JSON的东西进行跨域调用,这意味着:不是纯文本
进行跨域AJAX调用的最佳方法是在服务器上运行一个简单的代理脚本,并让它为您获取远程页面。如果您不明白,请在这里给我留言,我会帮您的,这就像4行PHP(或服务器端使用的任何东西)。您可以使用$.ajax和json作为数据类型。这里是示例代码
<script>
$.ajax({
type: 'GET',
url: 'http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?',
dataType: 'json',
data: {tags: "cat",tagmode: "any",format: "json"},
async: false,
success: function(data) {
$.each(data.items, function(i,item){
$("<img/>").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
}
});
</script>
<div id="images" name="images"></div>
$.ajax({
键入:“GET”,
网址:'http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?',
数据类型:“json”,
数据:{tags:“cat”,tagmode:“any”,格式:“json”},
async:false,
成功:函数(数据){
$.each(data.items,function(i,item){
$("
首先,要跨域检索信息,您必须使用。出于安全原因,您不能跨域加载任何内容
第二,出于对web开发中一切神圣事物的热爱,不要使调用同步。相反,当加载完成时,您应该将函数作为回调运行,以启动所有其他必要的功能。如果您的体系结构无法处理此问题,请认真重新考虑该体系结构。不要进行同步调用。它们将冻结浏览器,直到服务器回复,这会严重烦扰用户。好吧,@SLaks,好消息是没有跨浏览器解决方案来进行跨域AJAX调用:-)嗯,我知道冻结浏览器不是最好的,但这是当前架构的工作方式,它是一个大应用程序,我现在无法改变这一点……除非你设置服务器端文件以返回其他站点的文本,否则不存在跨域调用AJAX的方法。如果你不想设置文件,你可以进行一些iframe黑客攻击,但是iFrame现在不应该使用,所以…同步JSONP是不可能的。嗨,我不能将PHP文件放在同一个域中,因为它是一个运行在移动设备上的HTML5应用程序。我实现了PHP代理解决方案,但不幸的是,PHP(显然)在移动电话中不起作用,因为它没有apache服务器