繁体   English   中英

如何从Web应用发送Azure Cloud-2-设备消息

[英]How to send Azure Cloud-2-Device message from web app

我正在尝试使用以下代码在Azure中调用直接方法:

 function RebootPi() { $.ajax({ url: 'https://Dummy.azure-devices.net/twins/Dummy/methods?api-version=2018-06-30', type: 'POST', authorization: 'SharedAccessSignature sr=Dummy.azure-devices.net&sig=QsU2LS6BfOG5NvOfIcPWaJ01Og1rRBFKR1PRkFNVivY%3C&skn=iothubowner&se=1589177803', methodName: 'reboot', payload: '', responseTimeoutInSeconds: 15 // set response timeout as 15 seconds }); }; 

我可以使用Azure CLI和本地计算机上的curl成功调用该方法,因此SaS令牌可以。

当我在浏览器中调用该函数时,得到401(未授权)并被控制台中的CORS错误阻止:

jquery-3.4.0.min.js:2 POST https://dummy.azure-devices.net/twins/Dummy/methods?api-version=2018-06-30 401(未经授权)

从来源' https://dummy.azurewebsites.net '访问' https://dummy.azure-devices.net/twins/Dummy/methods?api-version=2018-06-30 '处的XMLHttpRequest已被阻止CORS政策:所请求的资源上没有“ Access-Control-Allow-Origin”标头。

我尝试使用通配符*和Web应用程序URL在Azure中配置CORS。

出于调试目的,我使用的插件在Chrome中禁用了跨来源功能,但仍然出现401错误。

经过漫长,有趣但又非常令人沮丧的旅程,我刚刚阅读了该主题。

azure-iot-hub通过浏览器端JavaScript获取消息

似乎暗示我不可能在Web应用程序中有一个调用直接方法的按钮。 这是因为CORS不包含必需的标头。

我对此很陌生,但我发现无法以某种方式完成此操作很奇怪。

我做错什么了吗?

这有可能吗,如果可以的话我应该怎么做?

任何建议都将不胜感激。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM