我已经用ASP.NET Core创建了一个API,在Program.cs中我指定了允许的来源策略,如下所示:
var origins = 'allowedOrigins';
builder.Services.AddCors((options) => {
options.AddPolicy(origins, (policy) => {
policy
.WithOrigins(
'http://10.9.8.50:80',
'http://10.9.8.50:81',
'http://10.9.8.50:7087',
'http://10.9.8.50:5000'
)
.AllowAnyHeader()
.AllowAnyMethod();
});
});
app.UseCors(origins);
字符串
我使用基本的JavaScript fetch方法来调用POST
async function postData(url = '', data = {}) {
let value;
const p = await fetch(url, {
method: 'POST',
mode: 'cors',
cache: 'no-cache',
credentials: 'same-origin',
headers: {
'Content-Type': 'application/json',
},
redirect: 'follow',
referrerPolicy: 'no-referrer',
body: JSON.stringify(data),
}).then((response) => (value = response.text()));
return value;
}
型
最近,在我试图发布对其中一个控制器的逻辑的一些修改后,服务器开始表现得很奇怪。我开始得到“在请求头中没有控制-允许-起源”。
我正在使用IIS 10服务器,我试图在web.config中注入CORS策略,但我开始得到一个错误,说在Web-Control-Allow-Origin中只允许一个值。
我想知道是什么问题引发了这一切,以及解决方案是什么。
谢谢
编辑:我在web.config文件中添加了以下行
<cors enabled="true" failUnlistedOrigins="false">
<add origin="*" allowed="true" />
</cors>
型
现在我得到以下错误:
已被CORS策略阻止:在预检响应中,请求头字段content-type不被EST-Control-Allow-Headers允许。
1条答案
按热度按时间zc0qhyus1#
在我的API的web.config文件中添加以下行解决了这个问题。
字符串