[英]Failing CORS on ajax requests to Neo4j
我正在尝试使用Backbone.js模型来访问Neo4j内容。 我不明白为什么以下通信未通过跨域检查:
首先,OPTIONS请求:
Request URL:http://localhost:7474/db/data/cypher
Request Method:OPTIONS
Status Code:204 No Content
Request Headers
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:origin, content-type, accept
Access-Control-Request-Method:POST
Connection:keep-alive
Host:localhost:7474
Origin:http://localhost:3000
Referer:http://localhost:3000/test/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11
Response Headers
Access-Control-Allow-Headers:origin, content-type, accept
Access-Control-Allow-Methods:POST
Access-Control-Allow-Origin:*
Allow:OPTIONS,POST
Server:Jetty(6.1.25)
然后POST请求:
Request URL:http://localhost:7474/db/data/cypher
Request Headers
Accept:application/json, text/javascript, */*; q=0.01
Content-Type:application/json
Origin:http://localhost:3000
Referer:http://localhost:3000/test/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11
Request Payload
start n=node(0) match n-[:hasClass]->c where c.className=Collection return c
我收到控制台错误:
OPTIONS http://localhost:7474/db/data/cypher 204 (No Content) jquery-1.7.2.min.js:4
XMLHttpRequest cannot load http://localhost:7474/db/data/cypher. Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin.
据我所知,该请求应该被允许,因为预检请求中说Access-Control-Allow-Origin:*。 有什么建议么? 有什么我想念的吗? 谢谢!
现在已不推荐使用的旧Cypher HTTP端点上的CORS失败。
http://neo4j.com/docs/stable/rest-api-cypher.html
在新的Transactional Cypher HTTP端点上似乎没有发生此问题。
http://neo4j.com/docs/stable/rest-api-transactional.html
自从我处理跨域请求以来已经很长时间了,但是可能是某种程度上缺少了标头。 虽然不确定。 请注意,您的浏览器会产生不符合请求的情况,因此值得检查您的浏览器对x-origin施加了哪些限制。 例如,如果您使用file://网址,则许多浏览器都不允许使用它。
对跨源请求的支持不是Neo4j服务器的文档功能,它是出于遗留原因而存在的,并且很可能出于安全原因而被删除(由于没有额外的安全层,如果攻击者知道其数据库,则可能会劫持您的数据库)网址)。
不过,可能值得将其设置为默认设置。
看来您使用的是Chrome浏览器,但我认为此错误可能与之相关。
Ticket #67743: Access-Control-Allow-Origin: * doesn't match localhost
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.