gpt4 book ai didi

c# - 带有自定义 header 的 Ajax 请求到其他域 WebApi

转载 作者:行者123 更新时间:2023-11-28 08:16:42 25 4
gpt4 key购买 nike

我正在尝试使用 JQuery Ajax 方法向其他域 WebApi 发送请求。它无需 header 即可工作。但是,当我发送带有自定义 header 的 Ajax 请求时,我在浏览器中收到“405->方法不允许”错误。

不起作用

$.ajax({
url: "http://localhost:53103/api/Values",
headers: { "ABC123": "ABC abc 123" }
});

此调用命中了 ValuesController 构造函数,但未命中 Get() 方法。

这有效

$.ajax({
url: "http://localhost:53103/api/Values"
});

这段代码运行没有任何问题。

服务器端 WebAPI

 public class ValuesController : ApiController
{
public ValuesController()
{}

// GET api/values
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}

在服务器上我有普通的 WebApi 项目。我还在 system.webServer 部分启用了 CORS。

  <httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, PUT, DELETE" />
<add name="Access-Control-Allow-Headers" value="*" />
</customHeaders>
</httpProtocol>

正如我之前提到的,在 web.config 中启用 CORS 后,我可以使用简单的 ajax 请求访问数据,但是当我发送带有 header 的 ajax 请求时,我收到“405 Method not allowed”错误。我应该做什么才能将带有 header 的请求发送到其他域 WebApi。

最佳答案

试试这个:

$.ajax({
type:"GET",
beforeSend: function (request)
{
request.setRequestHeader("ABC123", "ABC abc 123");
},
url:"http://localhost:53103/api/Values"
});

关于c# - 带有自定义 header 的 Ajax 请求到其他域 WebApi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23503140/

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