Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检索纯文本的跨域ajax同步调用_Javascript_Ajax_Jquery_Security - Fatal编程技术网

Javascript 检索纯文本的跨域ajax同步调用

Javascript 检索纯文本的跨域ajax同步调用,javascript,ajax,jquery,security,Javascript,Ajax,Jquery,Security,我正在寻找一个跨浏览器的解决方案,能够使跨域同步调用。我想做的是调用一些返回纯文本(没有JSON或XML)的PHP服务。重要的是调用必须是同步的,而不是异步的 你们知道这件事吗?谢谢 如果您对不受您控制的站点进行AJAX调用,则只能使用类似于p-JSON的东西进行跨域调用,这意味着:不是纯文本 进行跨域AJAX调用的最佳方法是在服务器上运行一个简单的代理脚本,并让它为您获取远程页面。如果您不明白,请在这里给我留言,我会帮您的,这就像4行PHP(或服务器端使用的任何东西)。您可以使用$.ajax和

我正在寻找一个跨浏览器的解决方案,能够使跨域同步调用。我想做的是调用一些返回纯文本(没有JSON或XML)的PHP服务。重要的是调用必须是同步的,而不是异步的


你们知道这件事吗?谢谢

如果您对不受您控制的站点进行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服务器