gpt4 book ai didi

jquery - 通过 $.ajax 访问 Azure 中的 WCF 会产生 "NETWORK_ERR: XMLHttpRequest Exception 101"

转载 作者:行者123 更新时间:2023-12-01 03:42:51 25 4
gpt4 key购买 nike

我尝试过同步和异步方法。我已经测试了许多线程中建议的所有不同内容,但我仍然不断收到上面的错误。

对于 IE,我得到“没有传输”,而在 FF 中,出现可怕的“异常...“失败”nsresult:“0x80004005 (NS_ERROR_FAILURE)”。 p>

当我从浏览器中的 URL 行访问该服务时,我会看到返回的文本,表明该服务已启动并正在运行。 (MyCloud.azurewebsites.net/MyService.svc/Ping)

但是当我尝试使用这个 JS 访问它时它不起作用。

$.ajax({
cache: false,
async: false, //have tried true too
type: "GET",
url: "http://MyCloud.azurewebsites.net/MyService.svc/Ping",
datatype: "text",
success: function (response) { ... },
error: function (xhr, requestStatus, errorText) { ... }
});

我测试了不同的浏览器(Chrome 除外)。由于 CORS 问题,我测试了声明不同的端点并对安全性进行了一些更改(传输而不是)。我最终还是会遇到错误。寻找那些只会带来更多困惑。

现在,我已经解决这个问题一天多了,我决定构建故障排除结构。

  • 上面的 JS 是否正确?
  • 以下端点定义和服务声明也正确吗?
  • 我还可以测试什么?我该如何探究这个问题?
<endpoint name="UrlEndPoint"
behaviorConfiguration="UrlEndPointBehavior"
address=""
binding="webHttpBinding"
contract="MyNamespace.IMyService"/>

<behavior name="UrlEndPointBehavior">
<webHttp helpEnabled="true"/>
</behavior>
[OperationContract]
[WebInvoke(UriTemplate = "Ping", Method = "GET")]
String Ping();

此刻我完全迷失了,感到恶心和疲倦。朝着正确的方向插入会很棒。

最佳答案

这是一个跨站点脚本错误。您需要调用服务器端处理程序(代理)来处理对 Azure 环境的请求。因此,您的 AJAX 调用看起来更像是这样:

 $.ajax({
type: "GET",
url: 'some/local/server-side/url/to/handle/the/call/to/"http://MyCloud.azurewebsites.net/MyService.svc/Ping",
datatype: "text",
success: function (response) { // handle response here from server-side proxy here },
error: function (xhr, requestStatus, errorText) { ... }
});

问题是由于浏览器中的 XSS(跨站点脚本)限制,您无法调用外部域。这是您选择的浏览器实现的安全预防措施。

关于jquery - 通过 $.ajax 访问 Azure 中的 WCF 会产生 "NETWORK_ERR: XMLHttpRequest Exception 101",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17201019/

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