我尝试了这两个代码,但它没有运行..我只想要从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中的变量..
答案 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发送请求并将回复发回给您