javascript - 如何解决 Mozilla 中的同源政策

标签 javascript autocomplete same-origin-policy

我正在我的项目中实现 YUI 自动完成。我创建了一个提供自动完成建议的网络服务。当我在同一台计算机上部署应用程序和 Web 服务时,一切工作正常。但是当我在不同的机器上部署 Web 服务时,它在 Firefox 中不起作用(但在 IE 中可以工作)。我认为由于同源政策,它在 Mozilla 中不起作用。
这是我的自动完成代码

<script type="text/javascript">
YAHOO.example.BasicRemote = function() {

    // Using an XHRDataSource to connect to web service
   var oDS = new YAHOO.util.XHRDataSource("http://host_other_than_my_machine/i2b2/services/AutocompleteService/getCodes"); 


    // Set the responseType as XML
    oDS.responseType = YAHOO.util.XHRDataSource.TYPE_XML;

    // Define the schema of the delimited results
    oDS.responseSchema = { 
                            resultNode: 'code', 
                            fields: ['value']             
                         }; 

    // Enable caching
    oDS.maxCacheEntries = 0;

    // Instantiate the AutoComplete
    var oAC = new YAHOO.widget.AutoComplete("myInput", "myContainer", oDS);

    return {
        oDS: oDS,
        oAC: oAC
    };
}();
</script>   

我的问题是
1)同源政策是实际问题吗?如果是,那么 IE 是否未绑定(bind)到与我的代码在 IE 中运行相同的策略?
2)如何摆脱它?我知道一些 php 代码可用于重定向请求,但我如何在这里使用它?

~阿金基亚。

最佳答案

您的问题可能与 AJAX 请求的来源有关,您应该查看以下内容:Cross Origin Request Security .

基本上,对于 apache,您需要将以下内容添加到“host_other_than_my_machine”.htaccess 文件中:

<IfModule mod_headers.c>
  Header set Access-Control-Allow-Origin "http://trusted.site"
</IfModule>

当然,将“http://trusted.site”替换为您将发出请求的域。

<小时/>

编辑:如果您需要允许访问多个远程域,您只需使用:

Header set Access-Control-Allow-Origin "*"

这通常不应成为安全问题,但请务必彻底考虑您的具体情况,即,如果您通过 AJAX 响应提供敏感信息。

关于javascript - 如何解决 Mozilla 中的同源政策,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7964158/

相关文章:

Javascript Pomodoro Clock - 当计时器为 0 时,clearInterval 不起作用

javascript - Angular 不适用于 Express 和 Pug

javascript - 观察 DOMNode 属性

jquery - UI 自动完成和 IE8

http - 在子域中设置 document.domain 如何影响域的 cookie?

security - Firefox或Chrome插件可阻止和过滤所有传出连接

javascript - 无法访问 Redis 远程服务器并且无法读取或写入 Redis 数据库

autocomplete - 声明式初始化列表宽度剑道自动完成

c - 有没有办法使 Eclipse 的代码完成与 XCode 的一样好?

angularjs - 客户端与服务器通信时如何克服 "Access-Control-Allow-Origin"错误