2011-09-27 116 views
0

我试图访问使用AJAX多台服务器的资源,和我遇到了这样的问题:的XMLHttpRequest无法加载

XMLHttpRequest cannot load http://first.mydomain.com. Origin http://second.mydomain.com is not allowed by Access-Control-Allow-Origin. 

用下面的代码

for (i in domains) 
    { 
     var url = 'http://'+domains[i]+'/mgmt/json/queue_status.php'; 
     requests[i]=new request(url); 
     break; 
    } 

    function request(url) 
    { 
     var queues = {}; 
     http_request = new XMLHttpRequest(); 
     http_request.open("GET", url, true, 'username', 'password'); 
     http_request.onreadystatechange = function() { 
      var done = 4, ok = 200; 
      if (http_request.readyState == done && http_request.status == ok) { 
       queues = JSON.parse(http_request.responseText); 
       var queuesDiv = document.getElementById('queues'); 
       print_queues(queues, queuesDiv);     
      } 
     } 
     http_request.send(null); 
    } 

我已经添加了以下内容响应页面被请求。

header('Access-Control-Allow-Origin: *'); 

我试图明确命名请求者也没有成功。

感谢

PS:上面的代码我肯定ins't完美,但功能罚款时,只是想请求主机服务器的资源。

+5

经典。这是因为[同源策略](http://en.wikipedia.org/wiki/Same_origin_policy) –

+0

好的,但有没有解决方法? – 111111

+0

是的,通过JSONP回调和'

相关问题