gpt4 book ai didi

angularjs - Angular JS-$Http Post 不适用于 chrome/FireFox,但 $http.get 工作正常

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:28:31 24 4
gpt4 key购买 nike

您好,我正在尝试将一些数据发布到我的 WebAPI,但是出现错误“无法加载资源:服务器响应状态为 405(方法不允许)”

这是我的 Angular 调用:

var req= {
url: appSettings.basePath + '/api/Location/PostSearch',
headers: { 'Content-Type': 'application/json' },
//datatype: 'Json',
data: SearchInfo,
method: 'POST'
}
return $http(req);

我的 API:

public int PostSearch(Search Obj)

{
Obj.Location = ReplaceDefaultValuesWithBlank(Obj.Location);
Obj.Sublocation = ReplaceDefaultValuesWithBlank(Obj.Sublocation);
Obj.PublicationCategory = ReplaceDefaultValuesWithBlank(Obj.PublicationCategory);
Obj.PublicationName = ReplaceDefaultValuesWithBlank(Obj.PublicationName);
int IsAdded = Db.USP_SaveSearch(Obj.SSO ?? "", Obj.SearchName ?? "", Obj.Location ?? "", Obj.Sublocation ?? "", Obj.PublicationCategory ?? "", Obj.PublicationName ?? "", Obj.FileNameFilterText ?? "", Obj.Content ?? "", Obj.DateRange ?? "");
return IsAdded;
}

不确定是什么问题,Call 在 IE 上工作正常但在 Chrome/FireFox 上不工作,

我没有看到 CORS 有任何问题,因为“GET”工作得很好,这是否与我在 webAPI 中引入的自定义路由有关

WebAPIConfig.cs:

public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApiWithAction",
routeTemplate: "Api/{controller}/{action}"
);

config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);

请帮助我,我花了很多时间进行故障排除仍然卡住了。

最佳答案

在 OPTIONS 上获得 405:Deduction-> OPTIONS 请求('Preflight')仅使用 POST 发送 CORS 请求。这很可能是 CORS 问题。 – Marvin Smit 昨天

关于angularjs - Angular JS-$Http Post 不适用于 chrome/FireFox,但 $http.get 工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32047272/

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