gpt4 book ai didi

javascript - IE 11 不向 Web 应用程序发送 CORS 'POST' 请求

转载 作者:行者123 更新时间:2023-11-28 05:57:31 26 4
gpt4 key购买 nike

在我的 DEV 计算机中,我有一个 Web 应用程序(SharePoint 站点)和一个简单的 ASP.NET MVC 应用程序,它们都位于同一 IIS 实例中。他们有不同的域(但都使用 SSL):

SharePoint 站点的主页有一个 ScriptEditor Web 部件,它仅在查询 MVC 应用程序的页面上“注入(inject)”JavaScript 代码:

jQuery.support.cors = true;

$.ajax({
crossDomain: true,
url: requestUrl,
type: "POST",
data: JSON.stringify(payload),
dataType: 'json',
headers: {
"accept": "application/json;charset=utf-8",
"Content-Type": "application/json;charset=utf-8"
},
success: function (data) {
...;
},
error: function (err) {
...;
}
});

问题是:当我在 IE 11 中运行此代码时,当 MVC 应用程序在 IIS Express 中运行时,它会命中 MVC 应用程序中的断点(即请求实际上获取应用程序)。但当 MVC 应用程序在“真正的”IIS 中运行时,IE 11 似乎会阻止该请求,甚至不将其释放到应用程序池。我在后一种情况下看到的错误是

XMLHttpRequest: Network Error 0x80070005, Access is denied.

enter image description here

可能是什么原因?我想,我尝试了一切,从添加像

这样的 web.config 元素
<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="Origin, X-Requested-With, Content-Type, Accept" />
</customHeaders>
</httpProtocol>

在 Startup.Configuration() 方法中启用 CORS,例如

public class Startup

{ 私有(private)静态只读 EsClosureConfiguration EsClosureConfigSection = WebConfigurationManager.GetSection(Constants.ESClosureConfigSectionName) as EsClosureConfiguration;

public void Configuration(IAppBuilder app)
{
//// ConfigureAuth(app);
app.UseCors(CorsOptions.AllowAll);

并在 IE 中添加不同区域的站点 URL。没有任何帮助。也许我挖错了方向?

最佳答案

此问题与在 JavaScript 跨 Web 应用程序中使用 REST API 时的身份验证有关。请引用此链接,它将帮助您解决此问题。 https://blog.kenaro.com/2014/03/18/cross-site-scripting-with-sharepoint-2013-rest-calls/另外请检查您的 web.config 文件是否有此标签“Access-Control-Request-Method”

关于javascript - IE 11 不向 Web 应用程序发送 CORS 'POST' 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37530599/

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