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

时间:2011-09-16 13:06:18

标签: javascript ajax jquery security

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

你们对此有什么想法吗?谢谢!

3 个答案:

答案 0 :(得分:1)

如果您对不受您控制的网站进行AJAX调用,则只能使用类似P-JSON的内容进行跨域调用,这意味着:不是纯文本。

进行跨域AJAX调用的最佳方法是在服务器上运行一个简单的代理脚本,并使其为您提取远程页面。如果你无法弄清楚,请在这里给我发表评论,我会帮助你,这就像4行PHP(或者你在服务器端使用的任何东西)。

答案 1 :(得分:1)

首先,要检索跨域信息,您必须使用JSONP。出于安全原因,您无法加载任何跨域的内容。

其次,对于网络开发中所有神圣的爱,不要让呼叫同步。您应该在加载完成时将函数作为回调运行,这将触发所有其他必要的功能。如果您的架构无法解决这个问题,那么请认真重新考虑架构。

答案 2 :(得分:0)

你可以使用$ .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>