网:ERR_CONNECTION_CLOSED

问题描述 投票:0回答:2

嗨,我在 chrome 中一直遇到问题。我不知道这是我的代码错误还是 chrome 错误。错误是

加载资源失败:net::ERR_CONNECTION_CLOSED

我的QSTNURL

const app = angular.module('myapp',["ngRoute"]);
app.value("QSTNURL","https://localhost:12345/api/insertQuestion");

客户端的 controller.js 是

app.controller('myctrl',function($scope,userFactory,QSTNURL){
  $scope.pushData = function(){
  var qstn = $scope.qstn;
  var opt1 = $scope.opt1;
  var opt2 = $scope.opt2;
  var opt3 = $scope.opt3;
  var opt4 = $scope.opt4;
  var ans = $scope.ans;
  const qstnObject = {
      "qstn":qstn,
      "opt1":opt1,
      "opt2":opt2,
      "opt3":opt3,
      "opt4":opt4,
      "ans":ans
  }
  console.log('doAjax');
  var promise = userFactory.doAjax(QSTNURL,qstnObject);
  promise.then(function(response){
      $scope.data = response;
   },function(error){
      $scope.error = error;
  });
 }

});

我对服务器的 ajax 调用是

app.factory("userFactory",function($http,$q){
  var userObject = {
    doAjax(QSTNURL,qstnObject){
        console.log('doAjax()');
            var defer = $q.defer();
            $http.get(QSTNURL,qstnObject).then(function(response){
                defer.resolve(response);
                console.log("doAjax 2");
            },function(error){
                defer.reject(error);
            });
            return defer.promise;

    }
  };
   return userObject;
});

server.js

const express = require("express");
 var expressSession = require('express-session');
 const app = express();
 var path = require("path");
 var bodyParser = require('body-parser');
 const userRoutes = require("./routes/userroutes");
 app.set('views', path.join(__dirname, 'views'));
 app.set('view engine', 'ejs');

 app.use(express.static(path.join(__dirname, 'public')));
 app.use(expressSession({secret: 'mySecretKey'}));

 app.use('/api',userRoutes);

 app.use(bodyParser.urlencoded({ extended: false }));
 app.use(bodyParser.json());


 app.use('/',userRoutes);
 app.listen(12345,()=>{
 console.log("Server Start...");
});

我所有的静态文件(比如:- 制作 SPA 的所有 js 文件,例如 app.js、控制器、facotry 等)都在公共文件夹中,视图部分在视图文件夹中

我的路线代码是

router.get('/insertQuestion',(req,response)=>{
  console.log("insertQuestion");
  var qstn = req.body.qstn;
  var opt1 = req.body.opt1;
  var opt2 = req.body.opt2;
  var opt3 = req.body.opt3;
  var opt4 = req.body.opt4;
  var ans = req.body.ans;
  var qstnObject = new Insert(qstn,opt1,opt2,opt3,opt4,ans);
  userOperation.insertQuestion(qstnObject,response,req);
  response.json("question inserted");
});
angularjs node.js google-chrome express angular-services
2个回答
0
投票

此错误仅在您没有在 12345 端口上运行的服务器时发生。

您正在呼叫

https://localhost:12345/dashboard/insertQuestion
。所以你也应该考虑你正在使用
https
方案所以确保你的服务器支持https方案并且端口是正确的。

如果您尚未将节点应用程序/服务器应用程序配置为在 https 上运行,则只需替换

https://localhost:12345/dashboard/insertQuestion

http://localhost:12345/dashboard/insertQuestion

0
投票

嘿,我得到了答案,整个问题都在 QSTNURL 中。我不应该传递这个 URL

https://localhost:12345/api/insertQuestion
而只传递
api/insertQuestion
像这样直接传递给 AJAX 调用

app.factory("userFactory",function($http,$q){
var userObject = {
doAjax(QSTNURL,qstnObject){
    console.log('doAjax()');
        var defer = $q.defer();
        $http.get('/api/insertQuestion',qstnObject).then(function(response){
            defer.resolve(response);
            console.log("doAjax 2");
        },function(error){
            defer.reject(error);
        });
        return defer.promise;

}
};
return userObject;
});

不知道为什么会这样。但它解决了我的问题

© www.soinside.com 2019 - 2024. All rights reserved.