gpt4 book ai didi

javascript - 预检响应具有无效的 HTTP 状态代码 400 Web API MVC

转载 作者:行者123 更新时间:2023-11-28 04:48:49 25 4
gpt4 key购买 nike

我们创建了一个 Web api,并尝试使用该 api 从 ajax 发布数据。当我尝试使用 Postman 插件时,Web api 正在处理发布请求,但当我们使用 json 数据通过 ajax 调用发布时,Web api 无法处理。

我们收到错误 XMLHttpRequest 无法加载 http://localhost:922/api/leaddetails/createlead 。预检响应具有无效的 HTTP 状态代码 400

这是ajax调用代码:

function SaveLead() {

var Lead = {
"lead_owner": "Pritam",
"company_name": "C",
"title": "T",
"first_name": "Santosh",
"last_name": "M",
"address1": "Rajasthan",
"address2": "d",
"city": "d",
"state": "d",
"country": "d",
"postal_code": "d",
"email": "vaya@gmail.com",
"phone": "d",
"website": "d",
"mobile": "8787878787",
"lead_status": "d",
"lead_source": "d",
"industry": "d",
"annual_revenue": "d",
"skype_id": "d",
"campaign_source": "d",
"description": "d",
"created_by": "A",
"updated_by": "a"
};

$.ajax({
type: "POST",
contentType: "application/json",
url: 'http://localhost:922/api/leaddetails/createlead',
data: JSON.stringify(Lead),
crossOrigin: true,
dataType: "json",
success: function (res) {
alert("The result is : " + res);
},
error: function (xhr) {
alert(xhr.responseText);
}
})



}

这是我的 web.config 文件:

<handlers>
<remove name="WebDAV"/>
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" responseBufferLimit="4194304" />
</handlers>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type, Accept" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>

我尝试通过 Postman 插件发帖。从那里它可以完美地发布数据。

最佳答案

终于得到 friend 的答复了。我不知道这是否是解决方案,但更改 ajax 语法对我有用。

    var apiurl = 'http://localhost:922/api/leaddetails/createlead';
var a = new XMLHttpRequest();
function SaveLead() {
var Lead = {
"lead_owner": "Pritam",
"company_name": "C",
"title": "T",
"first_name": "Sourav",
"last_name": "M",
"address1": "Bhilai",
"address2": "d",
"city": "d",
"state": "d",
"country": "d",
"postal_code": "d",
"email": "vaya@gmail.com",
"phone": "d",
"website": "d",
"mobile": "8787878787",
"lead_status": "d",
"lead_source": "d",
"industry": "d",
"annual_revenue": "d",
"skype_id": "d",
"campaign_source": "d",
"description": "d",
"created_by": "A",
"updated_by": "a"
};



a.open('POST',apiurl,true),
$.ajax({

url: apiurl,
type: "POST",
ContentType: "application/json; charset=utf-8",
data: Lead,
crossOrigin: true,
dataType: "json",
cache: false,
complete: function (res) {
alert("Data Added Successfully");
},
error: function (xhr) {
alert("Error");
}
})

}

感谢大家的回复。

关于javascript - 预检响应具有无效的 HTTP 状态代码 400 Web API MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43118178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com