当前位置: 首页 > 知识库问答 >
问题:

在6中通过API执行post方法时,在浏览器控制台中显示400(错误请求)

仲孙宇定
2023-03-14

通过RESTAPI执行post方法时显示400(错误请求)

这适用于运行ASP的SQL server。网

Rest服务。ts

import { Injectable } from '@angular/core';**

import { HttpClient, HttpHeaders } from '@angular/common/http';

import { Observable } from 'rxjs';

import { map } from 'rxjs/operators'

var httpoptions = {
  headers: new HttpHeaders({
    'Content-Type': 'application/json'
  })
}

@Injectable({

providedIn: 'root'

})

员工component.ts

import { Component, OnInit } from '@angular/core';
import {RestService} from  '../rest.service'

@Component({
  selector: 'app-employee',
  templateUrl: './employee.component.html',
  styleUrls: ['./employee.component.css']
})
export class EmployeeComponent implements OnInit {

  constructor(public rs:RestService) { }
employees:any

  ngOnInit() {

    this.funget()
  }

funget(){
    this.rs.getemployee().subscribe(employees=>{
      this.employees=employees
    })
}

insert;t1;t2;t3;t4;t5;t6;t7;t8;
  funins(){

    var data={
      ID:this.t1, Name:this.t2,Gender:this.t3,Designation:this.t4,Department:this.t5,EmailID:this.t6,
      PhoneNo: this.t7,Address:this.t8}
    this.rs.insertemployee(data).subscribe(dt=>{
      this.insert=JSON.parse(dt)
      this.funget()
    })
  }

员工控制员。反恐精英

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Cors;
using SampleAPI.Models;
namespace SampleAPI.Controllers
{
    [EnableCors(origins: "http://localhost:52821", headers: "*", methods: "*")]
    public class EmployeeController : ApiController
    {
         IEmployeeRepository repository = new EmployeeRepository();
        [HttpGet, Route("GetEmployee")]
        public IEnumerable<Employee> Get()
        {
            return repository.GetAll();
        }
        [HttpGet, Route("GetEmployeeBYID")]
        public Employee GetEmployee(int ID)
        {
            Employee emp = repository.Get(ID);
            if (emp == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            return emp;
        }
        [HttpPost,Route("InsertEmployee")]
        public HttpResponseMessage Post([FromBody] Employee emp)
        {
            emp = repository.Insert(emp);
            var response = Request.CreateResponse<Employee>(HttpStatusCode.Created, emp);

            string uri = Url.Link("DefaultApi", new { customerID = emp.ID });
            response.Headers.Location = new Uri(uri);
            return response;
        }
        //http://localhost:52821/UpdateEmployee?ID=3
        [HttpPut,Route("UpdateEmployee")]
        public HttpResponseMessage PutEmployee(int ID,Employee emp)
        {
            emp.ID = ID;
            if (!repository.Update(emp))
            {
                return Request.CreateErrorResponse(HttpStatusCode.NotFound, " ID :" + ID);
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.OK);
            }
        }
        [HttpDelete,Route("DeleteEmployee")]
        public HttpResponseMessage DeleteEmployee(int ID)
        {
            Employee emp = repository.Get(ID);
            if (emp == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            else
            {
                if (repository.Delete(ID))
                {
                    return Request.CreateResponse(HttpStatusCode.OK);
                }
                else
                {
                    return 
                        Request.CreateErrorResponse(HttpStatusCode.NotFound, " ID " + ID);
                }
            }
        }
    }

}

输出

**我希望通过API输出我的帖子数据,但显示选项http://localhost:52821/InsertEmployee400(错误请求)

访问位于“”的XMLHttpRequesthttp://localhost:52821/InsertEmployee“起源”http://localhost:4200'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态。

果心js:12501错误HttpErrorResponse

共有2个答案

董元徽
2023-03-14

此错误通常表示您传递的某种错误数据。这可能是因为某些整型字段值是float,或者整型字段值是string,等等。CORS错误理解起来有点复杂,但如果它带有其他错误,则通常不是因为服务器上的CORS阻塞。

我建议你们使用邮递员,并在正文中发送员工数据。尝试删除一个属性以确定哪种确切的数据格式是错误的。

鲁淇
2023-03-14

问题留在后端,在服务器中启用CORS策略。

HTTP OPTIONS方法用于描述目标资源的通信选项。客户机可以为OPTIONS方法指定一个URL,或者指定一个星号(*)来表示整个服务器。https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/OPTIONS

var cors = new EnableCorsAttribute("http://srv02:2300", "*", "*");
config.EnableCors(cors);

如何允许ASP的CORS。网

 类似资料:
  • 我在SpringBoot api上工作,并使用具有以下属性设置的H2数据库。 当我想使用浏览器通过'http://localhost:8082/h2-console'查看H2数据库控制台时,浏览器中打开了一个带有连接和测试连接按钮的屏幕。当我单击Test Connection时,它返回成功,但当单击Connect按钮时,出现错误,即localhost拒绝连接。

  • 我正面临一个奇怪的问题。我已经把所有东西都放在php.ini文件里了。但是我不能在浏览器中显示任何错误。我google设置了. ini文件,并做了所有需要的事情。但是我仍然不能在浏览器中显示错误信息。我的PHP ini设置, 我尝试使用以下代码查看错误消息, 实际上文件示例不可用。所以它必须显示致命错误。但它显示的是空白页。 你能告诉我怎么解决这个问题吗?我不知道我错过了什么。

  • 问题内容: 我试图找出如何抑制应用程序中的http请求和响应错误,例如,当对服务器提出错误请求时,我不希望该 错误记录到浏览器控制台中。我尝试覆盖$exceptionHandler,但是该逻辑适用于除HTTP 错误以外的所有异常,这些异常仍记录在浏览器中。我还创建了HTTP拦截器,但是全局400 Bad Request错误出现在我放入我的逻辑之前 : 那也没有抑制错误,有什么想法吗? EDIT 问

  • 我在做CORS请求时遇到了Axios帖子的奇怪问题。 当我使用以下代码进行调用时 当我执行这个时,我在开发工具中看到了带有200状态代码的响应。飞行前选项请求和随后的响应按预期工作。执行的代码块是catch块!! 在控制台中,我得到以下错误: 跨源请求被阻止:同一源策略不允许读取http://localhost:8080/auth/login上的远程资源。(原因:CORS标头'Access-Con

  • 问题内容: 为了进行快速验证,我在开发过程中已在浏览器控制台中测试了AngularJS服务。我注入到服务控制台的方法是在为说明这个问题,或 这与AngularJS 1.0.7完美配合。但是,升级到1.1.5之后,对于使用service的服务将不再起作用,不会发送xhr。 我已经测试过直接注射,它也不起作用。AngularJS changelog似乎没有关于此问题的记录。我可以知道这是什么问题吗?

  • V2.6.5 在Heroku上部署API后请求API时,我面临一个400错误的错误请求。但我不知道为什么? 我所做的: > 在/api的根目录中添加了Procfile 补充。htaccess in/api/public(通过composer需要symfony/apache-pack命令) Heroku Dashboard应用程序设置上定义的APP\u ENV和DATABASE\u URL 在Her