Javascript 否';访问控制允许原点';向本地主机上的Neo4j数据库发出AJAX请求时出错
我正在编写一个普通的JavaScrypt AJAX请求,从运行在Javascript 否';访问控制允许原点';向本地主机上的Neo4j数据库发出AJAX请求时出错,javascript,ajax,neo4j,Javascript,Ajax,Neo4j,我正在编写一个普通的JavaScrypt AJAX请求,从运行在localhost:8888上的MAMP服务器连接到运行在localhost:7474上的Neo4j数据库 我得到这个错误: 无法加载XMLHttpRequest . 不 “Access Control Allow Origin”标头出现在请求的服务器上 资源。因此,不允许使用源“” 通道响应的HTTP状态代码为401 在回答了类似的问题之后,我尝试删除了请求头,例如 // httpRequest.setRequestHeader(
localhost:8888
上的MAMP服务器连接到运行在localhost:7474
上的Neo4j数据库
我得到这个错误:
无法加载XMLHttpRequest
. 不
“Access Control Allow Origin”标头出现在请求的服务器上
资源。因此,不允许使用源“”
通道响应的HTTP状态代码为401
在回答了类似的问题之后,我尝试删除了请求头,例如
// httpRequest.setRequestHeader("Content-type", "application/json")
。。。但这没什么区别。我还研究了CORS,但没有找到解决方案
我可以对JavaScript进行哪些更改以使其正常工作?有没有办法让我的开发机器上的Neo4j数据库服务器接受来自同一台机器的请求
我的源代码:
<button type="button">AJAX Request</button>
<script type="text/javascript">
(function() {
var httpRequest
var restApiUrl = "http://neo4j:1234@localhost:7474/db/data/transaction/commit"
document.querySelector("button").onclick = function() {
makeRequest(restApiUrl)
}
function makeRequest(url) {
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
httpRequest = new XMLHttpRequest()
} else if (window.ActiveXObject) { // IE
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e) {}
}
}
if (!httpRequest) {
alert('Giving up :( Cannot create an XMLHTTP instance')
return false
}
var parameters = JSON.stringify({
"statements" : [ {
"statement" : "CREATE (n {props}) RETURN n",
"parameters" : {
"props" : {
"name" : "My Node"
}
}
} ]
})
httpRequest.onreadystatechange = alertContents
httpRequest.open('POST', url, true)
httpRequest.setRequestHeader("Content-type", "application/json")
httpRequest.setRequestHeader("Accept", "application/json; charset=UTF-8")
httpRequest.send(parameters)
}
function alertContents() {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
console.log(httpRequest.responseText)
} else {
alert('There was a problem with the request.')
}
}
}
})()
</script>
您会遇到这个错误,因为端口号不同。 通常,如果服务器不支持跨域Ajax调用,则无法进行跨域Ajax调用。 尽管如此,还是有办法解决的。
您可以使用CORS或JSONP。您会遇到这个错误,因为端口号不同。 通常,如果服务器不支持跨域Ajax调用,则无法进行跨域Ajax调用。 尽管如此,还是有办法解决的。
您可以使用CORS或JSONP。您会遇到这个错误,因为端口号不同。 通常,如果服务器不支持跨域Ajax调用,则无法进行跨域Ajax调用。 尽管如此,还是有办法解决的。
您可以使用CORS或JSONP。您会遇到这个错误,因为端口号不同。 通常,如果服务器不支持跨域Ajax调用,则无法进行跨域Ajax调用。 尽管如此,还是有办法解决的。 您可以使用CORS或JSONP。您面临的问题 发生了什么事?
默认情况下,您的浏览器不允许访问来自其他域的资源(例如,通过AJAX)。这一个的存在是为了使web更加安全 工作解决方案 以下是工作解决方案(本地,在我的机器上): 值得注意的是:
- 数据类型-此类型设置我们接受JSON作为响应
- contentType-这一个设置我们在请求中使用JSON
默认情况下,您的浏览器不允许访问来自其他域的资源(例如,通过AJAX)。这一个的存在是为了使web更加安全 工作解决方案 以下是工作解决方案(本地,在我的机器上): 值得注意的是:
- 数据类型-此类型设置我们接受JSON作为响应
- contentType-这一个设置我们在请求中使用JSON
默认情况下,您的浏览器不允许访问来自其他域的资源(例如,通过AJAX)。这一个的存在是为了使web更加安全 工作解决方案 以下是工作解决方案(本地,在我的机器上): 值得注意的是:
- 数据类型-此类型设置我们接受JSON作为响应
- contentType-这一个设置我们在请求中使用JSON
默认情况下,您的浏览器不允许访问来自其他域的资源(例如,通过AJAX)。这一个的存在是为了使web更加安全 工作解决方案 以下是工作解决方案(本地,在我的机器上): 值得注意的是:
- 数据类型-此类型设置我们接受JSON作为响应
- contentType-这一个设置我们在请求中使用JSON
注意:请参阅“响应标题”部分。如果使用jQuery,则
$.ajax()
方法会自动将JSON请求包装到JSONP中:如我问题的编辑版本所示,我尝试使用$.ajax()
,但错误仍然存在。无论是使用JSON.stringify()
还是发送原始对象,都没有区别。如果使用jQuery,则$.ajax()
方法会自动将JSON请求包装到JSONP中:如我问题的编辑版本所示,我尝试使用$.ajax()
,但错误仍然存在。无论是使用JSON.stringify()
还是发送原始对象,都没有区别。如果使用jQuery,则$.ajax()
方法会自动将JSON请求包装到JSONP中:如我问题的编辑版本所示,我尝试使用$.ajax()
,但错误仍然存在。它使
function makeRequest(url) {
var data = JSON.stringify({
"statements" : [ {
"statement" : "CREATE (n {props}) RETURN n",
"parameters" : {
"props" : {
"name" : "My Node"
}
}
} ]
})
$.ajax({
url : url
, type: "POST"
, data : data
, contentType: "application/json"
, dataType: "json"
, success: function(data, textStatus, jqXHR) {
console.log(data, textStatus)
}
, error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR, textStatus, errorThrown)
}
})
}
$.ajax({
url : "http://localhost:7474/db/data/transaction/commit",
type: "POST",
dataType: "json",
contentType : 'application/json',
data : JSON.stringify({
"statements" : [ {
"statement" : "CREATE (n {props}) RETURN n",
"parameters" : {
"props" : {
"name" : "My Node"
}
}
} ]
}),
success: function(data, textStatus, jqXHR) {
console.log(data, textStatus)
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR, textStatus, errorThrown)
}
});