相关疑难解决方法(0)

AngularJS为跨源资源执行OPTIONS HTTP请求

我正在尝试设置AngularJS与跨源资源进行通信,其中传递我的模板文件的资产主机位于不同的域上,因此角度执行的XHR请求必须是跨域的.我已经为我的服务器添加了适当的CORS标头,以便使其工作,但它似乎不起作用.问题是,当我在浏览器(chrome)中检查HTTP请求时,发送到资产文件的请求是OPTIONS请求(它应该是GET请求).

我不确定这是AngularJS中的错误还是我需要配置一些东西.根据我的理解,XHR包装器无法发出OPTIONS HTTP请求,因此看起来浏览器正在试图确定在执行GET请求之前是否"允许"首先下载资产.如果是这种情况,那么我是否还需要使用资产主机设置CORS标头(Access-Control-Allow-Origin:http://asset.host ..)?

cross-domain cors angularjs preflight

262
推荐指数
8
解决办法
26万
查看次数

如何在使用具有多个源的PUT和DELETE请求时解决ASP.NET Web API CORS预检问题?

我有一个ASP.NET Web API,由三个不同的SPA调用.我正在为Web API使用Windows身份验证.我最初尝试在Web.config中配置CORS,如下所示:

<httpProtocol>
    <customHeaders>
        <add name="Access-Control-Allow-Origin" value="http://localhost:63342" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE" />
        <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
        <add name="Access-Control-Allow-Credentials" value="true" />
    </customHeaders>
</httpProtocol>
Run Code Online (Sandbox Code Playgroud)

这导致了这个预检问题:

Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin (...) is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)

我通过在Global.asax.cs中添加以下方法解决了:

protected void Application_BeginRequest()
{
    if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
    {
        Response.Flush();
    }
}
Run Code Online (Sandbox Code Playgroud)

这种方法适用于单一SPA.我以为我可以去Web.config并添加其他类似的来源:

<add name="Access-Control-Allow-Origin" value="http://localhost:63342,http://localhost:63347,http://localhost:63345/>
Run Code Online (Sandbox Code Playgroud)

但显然这是不允许的.这产生了以下错误:

The 'Access-Control-Allow-Origin' header contains …
Run Code Online (Sandbox Code Playgroud)

asp.net cors http-options-method asp.net-web-api preflight

11
推荐指数
1
解决办法
9968
查看次数

Web Api 2处理选项请求

Web Api 2在Azure和AngularJsforntend 上托管了后端.我了解一些HTTP request使用预先检查OPTIONS request.我的问题是如何以这种方式实现后端,OPTIONS requests如果控制器中有一些将处理后续操作,则所有将返回200 GET/POST/PUT/DELETE/....

c# asp.net azure asp.net-web-api azure-web-sites

5
推荐指数
2
解决办法
9092
查看次数

预检的响应在角度发布请求上具有无效的HTTP状态代码403

我在我的localhost中有一个$ http请求,它正在调用一些api的url.我在执行呼叫时遇到错误

Response for preflight has invalid HTTP status code 403
Run Code Online (Sandbox Code Playgroud)

我可以使用角度做任何事情,以便我可以解决这个问题吗?我有CROS的chrome插件允许交叉来源请求

$http({
                method: 'POST',
                url: url,
                data:data1,
                headers: {
                    'Access-Control-Allow-Origin': '*',                 
                }
            })
Run Code Online (Sandbox Code Playgroud)

angularjs

1
推荐指数
1
解决办法
1万
查看次数