Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 当使用来自不同本地主机端口的GET api时,本地主机上的Angular获取404-CORS问题?_Node.js_Angular_Express_Cors - Fatal编程技术网

Node.js 当使用来自不同本地主机端口的GET api时,本地主机上的Angular获取404-CORS问题?

Node.js 当使用来自不同本地主机端口的GET api时,本地主机上的Angular获取404-CORS问题?,node.js,angular,express,cors,Node.js,Angular,Express,Cors,自从我从内存中的WebAPI URL切换到数据库URL以来,Angular应用程序的JavaScript控制台给了我一个404错误 我已经使用localhost:3035在lite服务器上运行了angular应用程序/ 我在localhost:3039上运行了一个mongodb/nodejs/express数据库/ 我的angular应用程序使用内存中的web api url“api/loggerData”就可以“获取”了 有什么想法吗?是科尔斯吗?还有别的吗?我是否也需要在角度端配置li

自从我从内存中的WebAPI URL切换到数据库URL以来,Angular应用程序的JavaScript控制台给了我一个404错误

  • 我已经使用localhost:3035在lite服务器上运行了angular应用程序/

  • 我在localhost:3039上运行了一个mongodb/nodejs/express数据库/

  • 我的angular应用程序使用内存中的web api url“api/loggerData”就可以“获取”了

有什么想法吗?是科尔斯吗?还有别的吗?我是否也需要在角度端配置lite服务器

这是我的角度代码:

private loggerUrl = 'localhost:3039/read/getall/';
getLoggerData(): Promise <Dataset[]> {
    return this.http.get(this.loggerUrl)
        .toPromise()
        .then(response => response.json().data as Dataset[])   
        .catch(this.handleError);
}
var app = express();

app.use(function (req, res, next) {

//Website you wish to allow to connect
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3035');

// Request methods you wish to allow
res.setHeader('Access-Control-Allow-Methods', 
'GET, POST, OPTIONS, PUT, PATCH, DELETE');

// Request headers you wish to allow
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');

// Set to true if you need the website to include cookies in the requests sent
// to the API (e.g. in case you use sessions)
res.setHeader('Access-Control-Allow-Credentials', true);

// Pass to next layer of middleware
next();
});

No collection
错误通常意味着您留下了一些相当于:

InMemoryWebApiModule.forRoot(InMemoryDataService)
在您的ngModule中,当您尝试发出“真正的”http请求时会受到干扰。因此,将其从您的ngModule中删除,您就可以开始了!:)

在此之后,您可能仍然会遇到CORS问题,但这将修复您当前遇到的错误:)

正如echonax所提到的,您应该使用完整的url,包括http:

private loggerUrl = 'http://localhost:3039/read/getall/'

No collection
错误通常意味着您留下了一些相当于:

InMemoryWebApiModule.forRoot(InMemoryDataService)
在您的ngModule中,当您尝试发出“真正的”http请求时会受到干扰。因此,将其从您的ngModule中删除,您就可以开始了!:)

在此之后,您可能仍然会遇到CORS问题,但这将修复您当前遇到的错误:)

正如echonax所提到的,您应该使用完整的url,包括http:

private loggerUrl = 'http://localhost:3039/read/getall/'

它应该是
private loggerUrl=http://localhost:3039/read/getall/';如果@echonax解决方案不起作用,那么我敢打赌这是CORS问题。您必须将数据库服务器配置为接受CORS请求。@echonax-谢谢您的建议-我已经尝试过了,您看到的是我尝试键入url的多种方法之一,但很高兴知道包括“http://”是正确的方法。事实证明,AJT_82的答案解决了这个问题——在我研究这个问题时,我还没有看到任何人谈论过内存中的web api。谢谢大家again@victor-我尝试了多个CORS解决方案,但没有成功-其中一个留在上面的快速代码中。下面的答案解决了这个问题-内存中的web API应该是
private loggerUrl=http://localhost:3039/read/getall/';如果@echonax解决方案不起作用,那么我敢打赌这是CORS问题。您必须将数据库服务器配置为接受CORS请求。@echonax-谢谢您的建议-我已经尝试过了,您看到的是我尝试键入url的多种方法之一,但很高兴知道包括“http://”是正确的方法。事实证明,AJT_82的答案解决了这个问题——在我研究这个问题时,我还没有看到任何人谈论过内存中的web api。谢谢大家again@victor-我尝试了多个CORS解决方案,但没有成功-其中一个留在上面的快速代码中。下面发布的答案解决了这个问题-内存中的web api从app.module文件中删除内存中的web api导入解决了404错误-我已经上下查看了堆栈,还没有将其视为解决方案-感谢您的帮助!从app.module文件中删除内存中的web api导入解决了404错误-我已经上下查找了堆栈,但尚未将其视为解决方案-感谢您的帮助!