我有一个web api,它具有基本身份验证。那个api代码我不能改变。我们可以添加cors概念来检测客户端应用程序中的数据,无论是在web.config中还是在客户端应用程序中启用CORS来解决跨源请求被阻止的问题:同源策略不允许读取远程资源https://example.com/abc。 (原因:缺少CORS标题'Access-Control-Allow-Origin'。
码
<button type="button" class="btn btn-info btn-flat bg_blue" @click="addCheckbox"><i class="fa fa-plus"></i> Add feature</button>
}
}
答案 0 :(得分:1)
您需要在WebApiConfig
中添加以下两行var cors = new EnableCorsAttribute("....", "*", "*");
config.EnableCors(cors);
"..."
应包含您的网络应用的网址。
有关更多信息和替代方案,请查看here。
此外,客户端无需设置以下内容:
'Access-Control-Allow-Origin': '*'
答案 1 :(得分:0)
如果Web服务器是IIS。您可以编辑web.confg。
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
答案 2 :(得分:0)
如果你正在使用Asp.NET WEBAPI,你可以解决问题..而不是在客户端设置..但是直接在服务器中...尝试放入你的StartUp.cs
using Microsoft.Owin;
using Owin;
public void Configuration(IAppBuilder app)
{
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
ConfigureAuth(app);
}
在您的WebConfig中的部分内容如下:
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
<remove name="OPTIONSVerbHandler"/>
<remove name="TRACEVerbHandler"/>
<remove name="WebDAV"/>
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
</handlers>
希望它可以帮到你