Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何向本地托管的node.js服务器发出jQuery请求?_Javascript_Jquery_Node.js_Httprequest_Http Get - Fatal编程技术网

Javascript 如何向本地托管的node.js服务器发出jQuery请求?

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

我在一个名为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 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页面。