为了账号安全,请及时绑定邮箱和手机立即绑定

如何查看 XmlHttpRequest 的问题所在

如何查看 XmlHttpRequest 的问题所在

ITMISS 2023-08-24 21:11:42
我在 ASP.NET 中编写了一个简单的 REST API,它以 json 格式返回一些数据。然后我尝试编写一些 javascript 来使用它,但遇到了困难。当我使用演示 API 时,我的代码工作正常,但当我尝试使用自己的 API 时,它失败了,我不知道如何获取有关原因的任何信息。这是我演示问题的代码(带有 javascript 的 html):    <!DOCTYPE html>    <html>    <head>        <meta charset="utf-8" />        <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />        <meta http-equiv="Pragma" content="no-cache" />        <meta http-equiv="Expires" content="0" />    </head>    <body>        <h2>Test Output:</h2>        <div id="testOutput"></div>    </body>        <script language="javascript">        function listAllProperties(o) {            var objectToInspect;                 var result = [];                    for(objectToInspect = o; objectToInspect !== null;                    objectToInspect = Object.getPrototypeOf(objectToInspect)) {                  result = result.concat(                    Object.getOwnPropertyNames(objectToInspect)                );              }                    return result;         }    </script>        request2.addEventListener('error', handleEvent);        request2.send()    </script>    </html>在“var request = new XMLHttpRequest()”之后的第一段代码中,您可以看到我正在使用“https://ghibliapi.herokuapp.com/films”处的演示 API,并且这可以工作,但是您可以在下面看到对于“request2”,我尝试使用自己的 API(使用 IIS 在本地计算机上运行,可以在本地访问http://local.api.com/moviesearch/{searchTerm})。在监视对我编写的 API 的请求时,使用 Firefox 开发人员工具中的“网络”选项卡,我可以看到响应没有任何问题(原始响应与标头一起粘贴在此处)。HTTP/1.1 200 OKCache-Control: no-cachePragma: no-cacheContent-Type: application/json; charset=utf-8Expires: -1Server: Microsoft-IIS/10.0X-AspNet-Version: 4.0.30319X-Powered-By: ASP.NETDate: Tue, 24 Nov 2020 01:11:12 GMTContent-Length: 69{"Count":1,"ItemList":["Wedding Crashers 2005 Uncorked Edition"]}根据 Firefox 开发者工具中的“网络”选项卡,该响应在等待 286 毫秒后返回。在我在 javascript 末尾执行的 ProgressEvent 对象或 XmlHttpRequest 对象的打印输出中,我看不到任何有用的信息(但我将粘贴下面的输出,以防它有助于调试)。
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

我检查了开发工具控制台并看到了 CORS 错误:

“跨源请求被阻止:同源策略不允许读取 localhost/moviesearch/crash 处的远程资源。(原因:缺少 CORS 标头“Access-Control-Allow-Origin”)。”



查看完整回答
反对 回复 2023-08-24
  • 1 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信