Javascript 如何向本地托管的node.js服务器发出jQuery请求?
我在一个名为server.js的文件中保存了一个简单的node.js服务器,其代码如下:Javascript 如何向本地托管的node.js服务器发出jQuery请求?,javascript,jquery,node.js,httprequest,http-get,Javascript,Jquery,Node.js,Httprequest,Http Get,我在一个名为server.js的文件中保存了一个简单的node.js服务器,其代码如下: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(8010); 我在命令行(安装了node.js)中通过执行 node serv
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8010);
我在命令行(安装了node.js)中通过执行
node server.js
如果我在我的浏览器(google chrome)中使用我的URL my.local.IP.address:8010访问它,它会成功地显示hello world
我还创建了一个网页,该网页将在页面加载后立即执行此jQuery:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$.get("http://my.local.IP.address:8010/", function(){
alert("Success");
}).fail(function(err){
alert("Failed");
alert(JSON.stringify(err));
});
});
</script>
无论我在node.js服务器本地运行时尝试了多少次,这种情况都会发生。我还尝试创建一个异步XMLHTTP请求函数来自己完成,但这也不起作用
我知道我制作的jQuery和XMLHTTP函数都能正常工作,因为如果我调用URL上的函数,它将成功返回
你知道我哪里出错了吗?我想这可能是一个跨域问题,因为你在通话中使用了你的IP地址,在浏览器url上使用localhost:8010访问你的网站。这是ajax请求的常见问题,与Node.js无关 尝试使用与目标url相同的url访问该站点
我想这可能是一个跨域问题,因为您在通话中使用了IP地址,在浏览器url上使用了localhost:8010来访问您的站点。这是ajax请求的常见问题,与Node.js无关 尝试使用与目标url相同的url访问该站点
这是一个跨域问题。浏览器认为您的页面不是服务器的一部分。您需要按如下方式更改服务器代码,以使其正常工作
http.createServer(function (req, res) {
res.setHeader("Access-Control-Allow-Origin", "*");
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8010);
这是一个跨领域的问题。浏览器认为您的页面不是服务器的一部分。您需要按如下方式更改服务器代码,以使其正常工作
http.createServer(function (req, res) {
res.setHeader("Access-Control-Allow-Origin", "*");
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8010);
你能试着重写一下吗?“尝试使用与目标相同的url访问站点”是什么意思?什么站点?什么目标?抱歉。我的意思是在浏览器导航栏中使用与AJAX url目标相同的url(
$。get(”http://my.local.IP.address:8010/“…
),尝试使用localhost或实际的IP。我错过了您指出您正在这样做的那一行。您能尝试重新编写它吗?您的意思是“尝试使用与目标相同的url访问该站点吗?”什么站点?什么目标?抱歉。我的意思是在浏览器导航栏中使用与AJAX URL目标相同的URL($.get(“http://my.local.IP.address:8010/“…
),或者尝试使用localhost,或者实际的IP。我错过了您指出您正在这样做的那一行。为了方便起见,请使用相对url,只需转到/
从http://localhost:8010
。所以请尝试$.get('/',function(){alert('success');}
为了方便使用相对url,只需转到/
从http://localhost:8010
。所以请尝试$.get('/',function(){alert('success');}
但这不安全任何人都可以发出请求同意这是不安全的。要使html页面在本地工作,这很好。为了获得最佳实践@Adam0410将需要使用express模板或仅在express服务器上托管html页面。但这不安全任何人都可以发出请求同意这是不安全的。要使html页面在本地工作,这是不安全的e、 为了获得最佳实践,@Adam0410需要使用express模板,或者只在express服务器上托管html页面。