【问题标题】:Http failure response for http://localhost:8000/api/... 500 Internal Server Error in angular 5http://localhost:8000/api/... 的 Http 失败响应 500 角度 5 中的内部服务器错误
【发布时间】:2018-07-11 03:34:05
【问题描述】:

]2

当我使用邮递员进行测试时,此 API 运行良好。请帮帮我

【问题讨论】:

  • httpOptions 在哪里?
  • 您使用的网络服务器是否提供错误日志?关于确切原因的答案可能在那里,但我也没有看到httpOptions 的任何定义......
  • 始终以文本格式共享您的代码,并共享您的代码 sn-p 中的所有变量和函数的完整定义

标签: angular angular5 angular6


【解决方案1】:

使用this.httpOptions() 代替httpOptions,您必须在某处定义this.httpOptions() 函数并从那里导入选项,

否则试试这段代码,现在就足够了:

postMember(Member): Observable<any> {
  return this.http.post('http://localhost:8000/api/members/store', JSON.stringify(Member), {headers: this.getCommonHeaders()})
      .map(res => res.json())
      .catch(err => Observable.throw(err));
}

//function for fetching headers, you can define according to your need over here..
      getCommonHeaders(){
        let headers = new Headers();
        headers.append('Content-Type','application/json');
        return headers;
      }

【讨论】:

  • 有同样的问题。我认为这不是 http 的问题。
【解决方案2】:

我不知道你的代码是怎么回事。但是我在项目工作中遇到了同样的问题。但是我阅读了文档并正确解决了它。在您的屏幕截图中,我看到您正在发送一个您传递的请求(正文值和作为 httpOptions 的标头)一切正常,但请检查下面给出的这两点:

  1. 您正在运行 localhost api 服务。因此,您需要快速解决服务器站点的 CORS(跨源资源共享)问题,否则任何请求都不会被浏览器接受。

  2. 请输入我在下面提到的 httpOptions 凭据。(注意我使用的是 GET 请求 Angular 7.2.14)

     getcategories():Observable<any> {

         const httpOptions = {
              headers: new HttpHeaders(
              { 
                 'Authorization': 'Your Token',
                 'Content-Type': 'application/json'
              })
          }

        return this.httpclient.get("http://localhost:8000/api/v1/categories/", httpOptions);

      }

谢谢。希望最好的。

【讨论】:

  • 这是离子应用吗?
  • 不,它不是离子应用程序,而是网络应用程序。你也可以试试离子,我希望它也能在那里工作。因为两者都是“打字稿”。
【解决方案3】:

快递服务器

const express = require("express");    
const app = express();
const cors = require("cors");
app.use(function (req, res, next) {
    //Enabling CORS
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, x-client-key, x-client-token, x-client-secret, Authorization");
    next();
});
app.post("/members",cors(),  (req, res)=>{
    console.log(req.body);
    res.status(200).send({"message" : "data received"});
});

角边: 在 src 文件夹中创建 json 文件 proxy.conf.json 并粘贴以下代码:

{
    "/api/*": {
        "target": "http://localhost:8000",
        "secure": false,
        "logLevel": "debug"
    }
}

在 angular.json 中

在架构师中粘贴

"architect": {
    "options": {
        "proxyConfig": "src/proxy.conf.json"
    }
}

在服务器端应该有一个与您在 Angular 上创建的端点相同的 api 来接收数据,否则您将面临错误 500。

【讨论】:

    猜你喜欢
    • 2021-09-07
    • 2022-10-04
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    • 2012-02-23
    • 2017-07-16
    • 2016-07-29
    相关资源
    最近更新 更多