您好我正在尝试将一些数据发布到我的WebAPI,但是收到错误"无法加载资源:服务器响应状态为405(方法不允许)"
这是我的角色呼叫:
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 }
);
请帮我解决,我已经花了很多时间进行故障排除仍然卡住了。
答案 0 :(得分:0)
在选项上获得405:扣除 - > OPTIONS请求('Preflight')仅发送带有POST的CORS请求。很可能这是一个CORS问题。 - 昨天Marvin Smit