[访问 Cors错误访问Azure node.js服务器[处于保留状态]

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

Azure Portal我有一个在azure上运行的Straighfoward node.js应用程序,具有正常的CRUD get / set / put /等api。也可以在Azure上从另一个客户端应用程序访问。如果我在本地计算机上都运行它们,它们运行正常。我将它们发布到Azure AppServices,并且客户端“ get”(获取所有记录)有效,但是删除,更新和添加所有失败均带有[]

polyfills-es2015.d3e61f0dd2b58e518eca.js:1从源'https://kurtmongoangular.azurewebsites.net'在'hhttps://kurttaskelementmongo.azurewebsites.net/elements/6'处对XMLHttpRequest的访问已被CORS政策阻止:仅支持跨源请求用于协议方案:http,数据,chrome,chrome扩展名,https。

正如所有网络文章所述,我进入了Azure门户,并将node.js服务器的Cors设置设置为*,并且我让其他应用正常运行。我希望使我失败的还有其他一些考虑因素。

这是客户端代码(使用Angular的http模块)

这里是拨打电话的角度代码:

import { Injectable } from '@angular/core';
import { Observable, of } from 'rxjs';
import { HttpClient } from '@angular/common/http';
import { Task } from './Task';
export interface Tasks {   // I have no idea what this does!!!
 name: string;
}
@Injectable({ providedIn: 'root' })  // this makes this service injectable, Angular's dependecy injection model

export class TaskService {
 constructor(private http: HttpClient) {}
 getAllTasks(): Observable<Task[]> {
   return  this.http.get<Task[]>(' https://kurttaskelementmongo.azurewebsites.net/tasks/');
 }
 getTask(taskName: string): Observable<Task> {
   return this.http.get<Task>('https://kurttaskelementmongo.azurewebsites.net/tasks/' + taskName);
 }
 insertTask(task: Task): Observable<Task> {
   return this.http.post<Task>('https://kurttaskelementmongo.azurewebsites.net/tasks/', task);
 }
 updateTask(task: Task): Observable<void> {
   return this.http.put<void>('https://kurttaskelementmongo.azurewebsites.net/tasks/' + task._id, task);
 }
 deleteTask(task: Task) {
   return this.http.delete('https://kurttaskelementmongo.azurewebsites.net/tasks/' + task._id);
 }
}

//这是node.js app.js

const express = require("express");
const bodyParser = require("body-parser");
const taskController = require("./controllers/TaskController");
const elementController = require("./controllers/ElementContoller");

// this brings in and sets up the monog db instance connection
require("./config/db");

const app = express();

const port = process.env.PORT || 80;  // setting the port number for this server
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());


// API ENDPOINTS
// not using the Express Router code, instead just listing them

app
  .route("/tasks")
  .get(taskController.listAllTasks)
  .post(taskController.createNewTask);

app
  .route("/tasks/:taskid")
  .get(taskController.readTask)
  .put(taskController.updateTask)
  .delete(taskController.deleteTask);

// add new routes for my element table demo of Elements
app
  .route("/elements")
  .get(elementController.listAllElements)
  .post(elementController.createNewElement);

app
  .route("/elements/:_id")
  .get(elementController.readOneElement)
  .put(elementController.updateElement)
  .delete(elementController.deleteElement);

app.listen(port, () => {
  console.log(`Server running at http://localhost:${port}`);
});

我有一个使用常规CRUD get / set / put / etc api在azure上运行的straighfoward node.js应用程序。也可以在Azure上从另一个客户端应用程序访问。如果我在本地计算机上都运行它们,它们运行正常。我...

node.js cors
1个回答
0
投票

sideshowbaker是正确的!

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