簡體   English   中英

為什么我得到空結果?

[英]Why I'm getting empty result?

我正在學習JavaScript,Ajax和NodeJ。

我正在嘗試構建一個顯示服務器字符串的網頁。

服務器代碼:

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狀態:0 Ajax1.html:1 XMLHttpRequest無法加載http://127.0.0.1:8081/sms 所請求的資源上沒有“ Access-Control-Allow-Origin”標頭。 因此,不允許訪問原始“空”。 Ajax1.html:28狀態:4狀態:0 Ajax1.html:35得到結果:

為什么我得到一個空字符串? 我想念什么? 謝謝

您的客戶端代碼和服務器代碼必須位於相同的來源(相同的主機名,相同的端口),才能發出AJAX請求。

127.0.0.1 無法將AJAX請求發送到127.0.0.1:8081。

要解決此問題,可以將node.js反向代理到相同的主機名(推薦),或者在node.js中設置Access-Control-Allow-Origin。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM