如何向本地托管的 node.js 服务器发出 jQuery 请求?
How to make a jQuery request to a locally hosted node.js server?
我有一个简单的 node.js 服务器保存在一个名为 server.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>
当我在浏览器中打开这个 html 文件时,它总是会创建一个警告框,提示失败,然后是这个字符串化的 JSON 对象作为错误(我已经格式化它以便更容易阅读):
{
"readyState": 0,
"status" : 0,
"statusText": "error"
}
当 node.js 服务器在本地 运行 时,无论我尝试了多少次,都会发生这种情况。我也试过自己做一个异步的 XMLHTTP 请求函数,但这也不起作用。
我知道 jQuery 和我制作的 XMLHTTP 函数都能正常工作,因为如果我调用 URL https://httpbin.org/get 上的函数,它将 return 成功。
关于我哪里出错的任何想法?
我猜这可能是一个跨域问题,因为您在通话中使用了您的 IP 地址,并且 localhost:8010 在浏览器 url 上访问您的站点。这是ajax请求的常见问题,与Node.js
无关
尝试使用与您定位的网站相同的 url 访问该网站。
See this similar issue with cross domain
这是一个跨域问题。浏览器认为您的页面不是 http://localhost:8081 服务器的一部分。您需要如下更改服务器代码才能使其正常工作。
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);
我有一个简单的 node.js 服务器保存在一个名为 server.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>
当我在浏览器中打开这个 html 文件时,它总是会创建一个警告框,提示失败,然后是这个字符串化的 JSON 对象作为错误(我已经格式化它以便更容易阅读):
{
"readyState": 0,
"status" : 0,
"statusText": "error"
}
当 node.js 服务器在本地 运行 时,无论我尝试了多少次,都会发生这种情况。我也试过自己做一个异步的 XMLHTTP 请求函数,但这也不起作用。
我知道 jQuery 和我制作的 XMLHTTP 函数都能正常工作,因为如果我调用 URL https://httpbin.org/get 上的函数,它将 return 成功。
关于我哪里出错的任何想法?
我猜这可能是一个跨域问题,因为您在通话中使用了您的 IP 地址,并且 localhost:8010 在浏览器 url 上访问您的站点。这是ajax请求的常见问题,与Node.js
无关尝试使用与您定位的网站相同的 url 访问该网站。
See this similar issue with cross domain
这是一个跨域问题。浏览器认为您的页面不是 http://localhost:8081 服务器的一部分。您需要如下更改服务器代码才能使其正常工作。
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);