预检响应具有无效的 http 状态代码 405 angular 5 in chrome
Response for preflight has invalid http status code 405 angular 5 in chrome
我收到 405 错误
我已附上屏幕截图和代码以供审核。
getDetails(rolename: Role): Observable<Role> {
let value = Array();
let headers = new Headers();
headers.append('Content-Type', 'application/json');
let options = new RequestOptions({ headers: headers });
var passData = {
"Abc": "khkh",
"cde": "hkhk",
"fgh": "hkhk",
"ijk": "acc"
};
let body = this.serializeObj(passData);
return this.http.post("http://localhost/service.svc/GetResults",
body,
options).pipe(
map((response: Response) => {
debugger;
return <Response>response;
})).catch(this.handleErrorObservable);
}
我已经在 webconfig 中添加了 cors
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE,OPTIONS" />
</customHeaders>
</httpProtocol>
我的 Post 方法指向 WCF Rest
[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json,
RequestFormat =WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "GetResults")]
List<ResponceModel> GetResults(Model request);
我做不到 post。请帮助我。
URL 必须包含您的请求中缺少的端口号。请添加查看
我得到了答案
我在同一台服务器上托管应用程序并尝试 运行 在同一应用程序域中。所以没有发生跨域问题。这样我的问题就解决了。
感谢大家的帮助
getDetails(rolename: Role): Observable<Role> {
let value = Array();
let headers = new Headers();
headers.append('Content-Type', 'application/json');
let options = new RequestOptions({ headers: headers });
var passData = {
"Abc": "khkh",
"cde": "hkhk",
"fgh": "hkhk",
"ijk": "acc"
};
let body = this.serializeObj(passData);
return this.http.post("http://localhost/service.svc/GetResults",
body,
options).pipe(
map((response: Response) => {
debugger;
return <Response>response;
})).catch(this.handleErrorObservable);
}
我已经在 webconfig 中添加了 cors
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE,OPTIONS" />
</customHeaders>
</httpProtocol>
我的 Post 方法指向 WCF Rest
[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json,
RequestFormat =WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "GetResults")]
List<ResponceModel> GetResults(Model request);
我做不到 post。请帮助我。
URL 必须包含您的请求中缺少的端口号。请添加查看
我得到了答案
我在同一台服务器上托管应用程序并尝试 运行 在同一应用程序域中。所以没有发生跨域问题。这样我的问题就解决了。 感谢大家的帮助