为什么我'我得到的结果是空的
Why I'm getting empty result?
我正在学习JavaScript&Ajax;NodeJs。
我正在尝试构建一个显示服务器字符串的网页。
服务器代码:
var express = require('express');
var app = express();
app.get('/sms', function (req, res) {
console.log("Got request: " + req);
res.send('Hello World');
console.log("Send result");
})
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("Listening at http://%s:%s", host, port)
})
客户端代码:
<html>
<head>
<title> Test AJAX </title>
</head>
<body>
<p>
<button onclick="sendRequestForSms()"> Get SMS From Server </button>
</br>
<h1 id="smsId"> SMS: <h1>
</p>
<script type="text/javascript">
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
console.log('State: ' + xmlhttp.readyState + ' status: ' + xmlhttp.status);
// 1: server connection established
// 4: request finished and response is ready
// 200: "OK"
// 404: Page not found
if (xmlhttp.readyState == 4)// && xmlhttp.status == 200)
{
console.log('Got Result: ' + xmlhttp.responseText);
document.getElementById("smsId").innerHTML = xmlhttp.responseText;//"done";
}
};
function sendRequestForSms() {
xmlhttp.open("GET", "http://127.0.0.1:8081/sms", true);
xmlhttp.send();
}
</script>
</body>
</html>
点击按钮后,我得到一个空字符串。
日志如下:状态:1状态:0Ajax1.html:1 XMLHttpRequest无法加载http://127.0.0.1:8081/sms.请求的资源上不存在"Access Control Allow Origin"标头。因此,不允许访问源"null"。Ajax1.html:28状态:4状态:0Ajax1.html:35得到的结果:
为什么我得到一个空字符串?我错过了什么?感谢
您的客户端代码和服务器代码必须在同一个源(相同的主机名、相同的端口)上才能发出AJAX请求。
127.0.0.1无法向127.0.0.1:8081发送AJAX请求。
要修复此问题,请将node.js反向代理到相同的主机名(推荐),或者在node.js中设置Access Control Allow Origin。
相关文章:
- 为什么_self结果是不同的价值观
- 为什么结果是全局名称,这是由“这个”引起的
- 为什么这个JavaScript代码的结果是“;未定义”;
- 将函数从 obj 传递到数组中.然后添加数组,但结果是 NaN.为什么
- Javascript与C++,相同的代码,不同的结果,这是为什么
- 为什么Javascript给出的结果是数字而不是真/假的表达式
- 使用 Lodash 合并数组,为什么结果是重复的数组值?,我的代码在哪里出错
- 为什么下面的结果是“;必须设置Ember.set()才能访问此属性“”;
- 为什么在JavaScript中添加两个空数组的结果是字符串
- 为什么我'我得到的结果是空的
- 赋值运算符,为什么结果是-3
- 如果([]== false)为真,为什么([]|| true)的结果是[]?
- 创建文本节点的结果是[objecthtmlspanelement],为什么?
- 为什么关于alert函数的结果是未定义的?
- 为什么这个计算结果是NaN
- 为什么响应结果是零,谷歌地图v3
- 为什么“pattern.test(name)”连续调用的结果是相反的?
- 为什么javascript中这个正则表达式的结果是真的
- 当我使用parseInt时,结果是NaN,为什么
- 为什么console.log第一次点击的结果是空的?