在AJAX中询问数据

时间:2010-08-18 17:27:39

标签: php jquery ajax

我尝试了这两个代码,但它没有运行..我只想要从http://vrynxzent.info/hello.php

请求来自另一个域的数据输出

第一个代码

$.post("http://vrynxzent.info/hello.php",function(e){
    alert(e);
});

第二个代码

alert(askData());
function askData()
{
 var strUrlList = "http://vrynxzent.info/hello.php";
 var strReply = "";

 jQuery.ajax({
  url:strUrlList, success:function(html){strReply = html;}, async:false
 });
 return strReply;
}

还有另外一种方法吗?或者这样做是否可行?我想要“Hello World!”输出存储在javascript中的变量..

3 个答案:

答案 0 :(得分:3)

相同的旧same origin policy

解决此问题的最常见方法是在后端进行查询(在您的情况下为php)。即,浏览器向主机发送ajax请求,主机将请求发送到其他域,接收响应并将其发送回浏览器。

如果您拥有其他域名,还有一些选项。例如,JSONP。

修改
忘了告诉,这个jquery插件允许通过YQL进行跨域请求。试过自己。
http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/
它并不适用于所有情况(特别是,如果网站管理员已禁止其网站上的机器人),但它仍然相当简单和可用。

答案 1 :(得分:1)

默认情况下,由于“同源策略”,这不起作用。

有解决方法......请参阅:http://www.ajax-cross-domain.com/

答案 2 :(得分:1)

由于相同的原始政策,您无法将这样的ajax请求发送到其他域名。

我建议在两者之间使用代理,。

为此您需要做的是在您自己的域上有一个脚本proxy.php,然后您的ajax请求将

$.post( 'proxy.php' )

然后proxy.php将使用curl向http://vrynxzent.info/hello.php发送请求并将回复发回给您