如何查看 XmlHttpRequest 的问题所在

我在 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 OK

Cache-Control: no-cache

Pragma: no-cache

Content-Type: application/json; charset=utf-8

Expires: -1

Server: Microsoft-IIS/10.0

X-AspNet-Version: 4.0.30319

X-Powered-By: ASP.NET

Date: Tue, 24 Nov 2020 01:11:12 GMT

Content-Length: 69


{"Count":1,"ItemList":["Wedding Crashers 2005 Uncorked Edition"]}

根据 Firefox 开发者工具中的“网络”选项卡,该响应在等待 286 毫秒后返回。


在我在 javascript 末尾执行的 ProgressEvent 对象或 XmlHttpRequest 对象的打印输出中,我看不到任何有用的信息(但我将粘贴下面的输出,以防它有助于调试)。


ITMISS
浏览 183回答 1
1回答

绝地无双

我检查了开发工具控制台并看到了 CORS 错误:“跨源请求被阻止:同源策略不允许读取 localhost/moviesearch/crash 处的远程资源。(原因:缺少 CORS 标头“Access-Control-Allow-Origin”)。”
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript