Javascript 我需要做一个“的代理点”;“网页应用见解”;遥测调用(Azure函数代理失败CORS选项调用)

Javascript 我需要做一个“的代理点”;“网页应用见解”;遥测调用(Azure函数代理失败CORS选项调用),javascript,azure,azure-application-insights,custom-url,Javascript,Azure,Azure Application Insights,Custom Url,我有一个html应用程序和Azure函数api。Application Insights正在通过呼叫向发送Teletry。我希望此流量通过以下URL之一: 我的API上的url(即我的app.azurewebsites.net/telemetry) 我制作的附加API上的url(即我的应用程序telemetry.azurewebsites.net/telemetry) 在Azure上向我的应用程序洞察添加自定义url端点的方法 本质上,我需要在API中创建一个代理端点。我试过了,但到目前为止

我有一个html应用程序和Azure函数api。Application Insights正在通过呼叫向发送Teletry。我希望此流量通过以下URL之一:

  • 我的API上的url(即我的app.azurewebsites.net/telemetry)
  • 我制作的附加API上的url(即我的应用程序telemetry.azurewebsites.net/telemetry)
  • 在Azure上向我的应用程序洞察添加自定义url端点的方法
本质上,我需要在API中创建一个代理端点。我试过了,但到目前为止运气不好,我收到了HTTP代码400-请求不正确

更新,我尝试的Azure函数代理如下所示:

{
    "$schema": "http://json.schemastore.org/proxies",
    "proxies": {
        "Application insights": {
            "matchCondition": {
                "route": "telemetry",
                "methods": [
                    "GET",
                    "POST",
                    "OPTIONS"
                ]
            },
            "backendUri": "https://dc.services.visualstudio.com/v2/track",
            "responseOverrides": {
                "response.headers.Access-Control-Allow-Origin": "*"
            }
        }
    }
}
更新

@奈尔提供了一个解决方案。Azure函数代理默认情况下不代理CORS调用。您应该导航到“平台功能”=>“CORS”,并删除您在那里看到的所有内容(请参见接受答案中的屏幕截图)

默认情况下,它包含

"https://functions.azure.com",  
"https://functions-staging.azure.com",  
"https://functions-next.azure.com"
删除这些,Azure函数代理现在也应该转发CORS调用

在Azure函数模板中,它应该如下所示

"cors": {
    "allowedOrigins": [], //this should be empty array
    "supportCredentials": false
}

我最近确实有这个问题。结果表明,选项请求未使用默认azure函数CORS设置进行代理。您看到的400来自azure功能,不允许您使用源代码

简单修复:删除CORS设置下的所有条目,您可以代理选项请求


我可以问一下目的吗?那我可能会给你一个更好的建议answer@PeterBons我现在可以使用Application Insights,但我应该避免从浏览器调用第三方URL。