xmlhttprequest状态始终为0,并且responseText

时间:2017-07-14 17:37:59

标签: node.js ajax ionic-framework

我编写了一个简单的node.js服务器和ajax请求,分别发送和接收请求。尽管每次更改都不起作用。这是我的node.js服务器代码......

var express=require('express');
var server=express();
server.get('/sampleResponse',function(req,res){
    if(req.method=="POST"){
        console.log('reache`enter code here`d post');
        res.status(200).send('connection successful');
    }else if(req.method=="GET"){
        console.log('reached get');
        res.status(200).send('connection successful');
    }

});
server.listen('8001','127.0.0.1');

//////下面是我的html页面...在localhost上运行:8100

<html>
    <head>
        <link href="lib/ionic/css/ionic.css" rel="stylesheet">
        <link href="css/style.css" rel="stylesheet">
        <script>
            function submitLoginDetails(){                
                var JSONLoginObj={rollNo:document.getElementById("rollNo").value,
                                password:document.getElementById("password").value};
                ///////////////////////////////////////////////////////////////
                var xhttp = new XMLHttpRequest();
                xhttp.onreadystatechange  = function(){ 
                    var xhrdata = "";
                    if(xhttp.readyState  == 4){
                        if(xhttp.status  == 200) 
                            alert(xhttp.responseText); 
                        else 
                            alert(xhttp.status);
                        }
                };
                xhttp.open("GET", "http://localhost:8001/sampleResponse", false);
                xhttp.send();
            }
        </script>
    </head>
    <body>
        <ion-pane>
            <ion-header-bar class="bar-stable">
                <h1 class="title">Login Page</h1>
            </ion-header-bar>
            <ion-content>
                <form>
                    Roll Number:<br><br>
                    <input type="text" id="rollNo"><br><br>
                    Password:<br><br>
                    <input type="text" id="password"><br><br>
                    <button id="loginButton" onclick="submitLoginDetails();">Login</button>
                </form>
                <p id="demo"></p>
            </ion-content>
        </ion-pane>
    </body>
</html>

when access the same page by clicking on link i get response but no response in xhttp.responseText.

1 个答案:

答案 0 :(得分:0)

这是一个跨域问题( CORS ),这意味着您正在尝试从当前域外部发出请求(对于资源)。您需要设置Access-Control-Allow-Origin以接受所有请求。

您可以通过将以下行添加到 .js 文件(您拥有express.js代码)来实现此目的

response.writeHead(200, {
    'Content-Type': 'text/plain',
    'Access-Control-Allow-Origin' : '*'
});