【发布时间】:2014-01-20 17:34:36
【问题描述】:
我正在尝试创建一个 html 文件,它将数据从 pouchDb 同步到 couchDb ..但我在 chrome 控制台中收到以下错误。
未捕获的类型错误:无法调用 null 的方法“addEventListener”
选项http://localhost:5984/todos/ 405(方法不是 允许)
OPTIONS http://localhost:5984/todos/ 上没有“Access-Control-Allow-Origin”标头 请求的资源。因此,Origin 'http://localhost:8080' 不允许访问。 XMLHttpRequest 无法加载 http://localhost:5984/todos/。没有“访问控制允许来源” 请求的资源上存在标头。原点'http://localhost:8080' 因此不允许访问。 选项http://localhost:5984/todos/ 没有“访问控制允许来源”标头 存在于请求的资源上。原点'http://localhost:8080' 因此不允许访问。 pouchdb-nightly.js:3496 选项http://localhost:5984/todos/ 不存在“Access-Control-Allow-Origin”标头 在请求的资源上。原点'http://localhost:8080' 因此不允许访问。 pouchdb-nightly.js:3496 XMLHttpRequest 无法加载 http://localhost:5984/todos/。不 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://localhost:8080” 访问。
我找到了避免此问题的方法。那就是我必须使用以下命令打开 chrome:cd C:\Program Files (x86)\Google\Chrome\Application Chrome.exe --disable-web-security。但这并没有解决问题。 我在这里看到了很多类似的问题。但我不明白任何答案,因为我在这个领域相对较新
【问题讨论】:
-
您遇到了我们所说的"same origin policy"。默认情况下,浏览器不允许您向与托管页面的服务器不具有相同协议和端口的服务器发出 ajax 请求。链接文章中有很多很好的信息。
-
谢谢.....但是该链接没有包含标题的任何代码
-
您无法在客户端 JavaScript 或 html 文件中设置该标头。它正在谈论来自服务器的响应中的标头。
-
你能给出一个解决方案吗....我正在使用html,js和同步pouchdb和couchdb pouchdb.com/getting-started.html
-
可以通过 response.addheader("","*"); 设置header在客户端
标签: javascript html cors couchdb pouchdb