webview中的WinJS网页在使用cors的ajax调用上返回0x80070005

时间:2014-05-29 16:41:31

标签: windows-runtime windows-8.1 winjs

我们有一个WinJS应用程序,在WebView控件中显示一个网站,WebPage加载正常但是每个ajax调用失败, 0x80070005访问被拒绝错误。我们尝试添加" Internet(客户端)"," Internet(客户端/服务器)"和" 专用网络"应用程序的功能没有成功。

呼叫使用 CORS 允许呼叫多个域,网站在每个桌面浏览器上都能正常工作,即使在现代环境中的IE上也是如此。但是,当站点在WebView控件内运行时,只有预检请求运行,尽管服务器响应状态代码为200,但实际请求永远不会被发送。

我们可以使用Fiddler看到这一点,这是预检请求:

OPTIONS /Queries/QueryContentAreas/GetAvaliableContentAreas HTTP/1.1
Accept: */*
Origin: https://myapp.demo.es
Access-Control-Request-Method: GET
Access-Control-Request-Headers: accept, authorization
UA-CPU: AMD64
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; MSAppHost/2.0; rv:11.0) like Gecko
Host: myappapi.demo.es
Content-Length: 0
Connection: Keep-Alive
Cache-Control: no-cache

这是服务器的回复:

HTTP/1.1 200 OK
Server: Microsoft-IIS/8.0
Access-Control-Allow-Origin: https://myapp.demo.es
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: authorization
X-Powered-By: ASP.NET
Date: Thu, 29 May 2014 16:32:56 GMT
Content-Length: 0

在Visual Studio中,将显示此访问被拒绝错误:

SCRIPT7002: XMLHttpRequest: Error de red 0x80070005, Acceso denegado.
File: demo

1 个答案:

答案 0 :(得分:0)

不确定你是否想过这个,但我遇到了类似的事情。

基于Features and restrictions by context (HTML),似乎因为应用程序位于Web上下文中(因为它位于WebView中),因此不允许跨域XHR请求。