在Neo4j API中阻止了交叉原始请求
Cross-Origin Request Blocked in Neo4j API
我正在尝试从jquery调用Neo4j API。
当我调用GET请求时,它可以完美地运行
GET请求端点
http://localhost:7474/db/data/node/10
但当我用json主体调用POST请求时,它会返回以下错误。
POST请求端点
http://localhost:7474/db/data/cypher
错误消息
"NetworkError: 500 Server Error - http://localhost:7474/db/data/cypher"
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:7474/db/data/cypher. This can be fixed by moving the resource to the same domain or enabling CORS.
当我从Advance REST客户端尝试时,它会返回正确的响应。请参考以下代码
$(document).ready(function(){
$("#btnQuery").click(function(){
var Request = "{'query' : 'MATCH (Movie { name:{searchName} })-[SHOWS]-(Cinema) RETURN Cinema','params' : {'searchName' : 'Rio 2'}}";
//url = mainURL +"cypher";
url = "http://localhost:7474/db/data/cypher";
$.ajax({
url: url,
headers : {
'Authorization' : 'Bearer 5f0e0d8c2a5477d4a8e79fa2d34f84a'
},
crossDomain: true,
type: 'POST',
dataType: 'application/json',
complete: function(xhr) {
if (xhr.readyState == 4) {
if (xhr.status == 201) {
alert("Data is loaded");
clearUsers();
isUserAdd = false;
}
} else {
alert("Data is not loaded");
}
},
beforeSend: function (xhr) {
xhr.setRequestHeader("accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
},
data: ('(' + Request + ')')
});
});
});
这里有一个工作示例:http://jexp.github.io/cy2neo
查看代码:https://github.com/jexp/cy2neo/blob/master/scripts/neo.js#L8
我认为问题出在dataType: JSON
上,它导致jquery发送了一个没有CORS的飞行前标题。我将其更改为指定content-type: JSON
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- ajax请求的顺序总是不同的
- Meteor如何接收HTTP请求
- 有没有一种方法可以防止img get请求使用css或js发生
- 从ajax请求中获取javascript对象
- JSONP请求返回结果,但也触发error_callback
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 使用jQuery从原始页面内容创建iframe
- 从ajax请求中获取原始文本
- 在 Blockcypher 上广播原始事务,在 POST 请求时出现错误
- 通过javascript获取原始/未修改的请求字符串
- AJAX-PHP;XML-POST请求指向PHP文件,而不是停留在原始页面
- 在Neo4j API中阻止了交叉原始请求
- 有没有办法更改浏览器's的URL,而不将第一个原始请求重定向到服务器
- 发送原始HTTP请求
- AJAX请求从每个页面访问服务器,我无法找到原始AJAX调用的源
- JQuery Ajax POST -请求体不显示在原始HTTP请求
- 如何在Node.js中捕获原始请求
- 提交ajax请求时,如何“搁置”原始请求?在满足条件之前暂时使用
- 如何用xmlhttp请求发送原始文本