【发布时间】:2020-11-06 01:39:02
【问题描述】:
我正在用 Asp.Net Core 3.1 开发 API。它按预期工作。当我尝试从 ajax 发送请求时,我遇到了与 CORS 相关的错误。但是当我直接从 Chrome、Edge 等浏览器甚至使用 Postman 等工具发送 GET 请求时,我没有收到任何错误。
错误:
访问 XMLHttpRequest 在 'http://server:8080/API/GetMethod?currency=INR' 来自原产地 'http://localhost:63765' 已被 CORS 策略阻止:否 请求中存在“Access-Control-Allow-Origin”标头 资源。
客户端代码:
$.ajax({
type: 'GET',
crossDomain: true,
dataType: 'json',
url: 'myUrl',
success: function(jsondata){
}
})
所以我的问题是为什么它没有在浏览器和邮递员中给出错误。为什么它会从客户端代码中给出错误?浏览器会忽略这些错误吗?据我了解,即使浏览器和邮递员也应该给出同样的错误。
更新:虽然link 上下文是相同的,但我对提供的答案并不满意。我对现有问题有更好的具体答案。
【问题讨论】:
-
“直接从浏览器发送 GET 请求”是什么意思?您的意思是通过在浏览器的地址栏中键入 URL 来访问它吗?
-
@GuyIncognito 是的,
-
为什么直接访问某个东西时会出现跨域错误?也许从研究 CORS 的实际含义和用途开始。从Why doesn’t Postman get a "No 'Access-Control-Allow-Origin' header is present on the requested resource" error when my JavaScript code does?开始
标签: javascript jquery ajax cors postman