同源策略
这个错误是因为浏览器实施了同源策略 (Same-Origin Policy),它默认情况下不允许网页从一个源(origin)的页面请求另一个源的资源。在您的情况下,您的网页位于http://127.0.0.1:5500
,而您尝试从该网页访问http://localhost:8001/api/province
,这两者的源是不同的,因此浏览器阻止了该请求。
要解决这个问题,您需要在服务器端配置跨源资源共享 (CORS) 头,以允许特定源(如http://127.0.0.1:5500
)访问您的API。在服务器端添加适当的响应头后,浏览器将允许跨源请求。
在您的服务器代码中,您需要设置响应头,以包括Access-Control-Allow-Origin
头字段,并将其值设置为允许访问的源,如下所示:
1 | const express = require('express'); |
在上述代码中,我们使用res.header('Access-Control-Allow-Origin', 'http://127.0.0.1:5500')
允许http://127.0.0.1:5500
源访问您的API。您可以根据需要更改允许的源。
请注意,您还可以使用CORS中间件来更方便地处理CORS配置。安装CORS中间件并将其添加到您的Express应用程序中,以简化CORS设置:
1 | npm install cors |
然后在您的服务器代码中:
1 | const express = require('express'); |
使用CORS中间件更简洁,并且它提供了更多的配置选项以满足您的需求。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 大毛毛博客!