2012-02-29 89 views
3

我正在写一个Firefox扩展。我正在使用与特定域匹配的内容脚本。我想从PHP页面获取数据。最终将CSS文件添加到页面以更改样式。 PHP页面的内容将是我获取的CSS文件的名称。这里是我的内容脚本JavaScript,该警报什么也没有返回。XMLHttpRequest的替代方法?

有人告诉我,我受限于同一来源的政策。有什么办法可以从php页面获取数据吗?

function getData() { 
      client = new XMLHttpRequest(); 
      try{ 
       client.open('GET','http://localhost:8888/istyla/login/popuplogin/myaccount.php');     
      } catch (e){ 
       alert("error while opening " + e.message); 
      } 

      client.onreadystatechange = function(){ 
       if (client.readyState ==4){ 
         user_data = client.responseText; 
         var currenttheme = user_data; 
         alert (currenttheme); 
       } 
      } 

      client.send(null); 
} 

getData(); 
+0

重要方面缺少:这是与附加的SDK构建的扩展的内容脚本。我已经回答了你的问题[这里](http://stackoverflow.com/a/9506835/785541),不会再回答。 – 2012-03-01 05:53:45

回答

4

您正在寻找JSONP

+1

你能给我示例代码吗? – 2012-02-29 18:57:02

3

您现在可以使用Safari或IE不支持的Fetch API,但它是一个不错的选择。

游马的使用它作为:

function getData(){ 
    fetch('flowers.jpg').then(function(response) { 
     return response.blob(); 
    }) 
} 


if(self.fetch) { 
    // run my fetch request here 
    var resp = getData(); 
} else { 
    // do something with XMLHttpRequest? 
} 

您可以从MDN Using Fetch API获得更多的信息。您可能需要More advance usage

更新:您可能会发现这篇文章有用That's so fetch!