通过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
此错误通常表示您传递的某种错误数据。这可能是因为某些整型字段值是float,或者整型字段值是string,等等。CORS错误理解起来有点复杂,但如果它带有其他错误,则通常不是因为服务器上的CORS阻塞。
我建议你们使用邮递员,并在正文中发送员工数据。尝试删除一个属性以确定哪种确切的数据格式是错误的。
问题留在后端,在服务器中启用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