【发布时间】:2017-11-15 18:20:29
【问题描述】:
我在使用 AJAX 调用 UPS 上的 API 时遇到以下错误
XMLHttpRequest 无法加载 https://wwwcie.ups.com/rest/Ship。回应 预检请求未通过访问控制检查:否 'Access-Control-Allow- Origin' 标头存在于请求的资源上。起源 'http://localhost:63786' 因此不允许访问。
AJAX 调用:
$.ajax({
url: "https://wwwcie.ups.com/rest/Ship",
type: "POST",
dataType: 'json',
crossDomain: true,
contentType: 'application/json',
data: JSON.stringify(message),
success: function (result) {
//code to execute on success
}
error: function (result) {
//code to execute on error
}
})
我无法控制 API 服务器,因此无法修改发回的标头。我已经尝试过 JSONP,更改了我发送的标头,以及许多其他解决方案都无济于事。我已经读过制作服务器端代理可能是一个合适的选择,但我不确定我将如何去做。任何关于可能解决方案的建议/代码示例将不胜感激。提前致谢。
【问题讨论】:
-
您需要一个服务器端代理。编写发送该请求并转发响应的服务器代码。
-
代理是您唯一的选择。而且,由于您没有指定您使用的服务器,因此不可能给您一个具体的答案。
-
“您没有指定您使用的服务器”是什么意思。我正在尝试对 UPS API 运输服务器进行 POST。
-
@AnthonyGargano 不是你的服务器。您将要构建的代理需要在您的服务器上构建。
标签: javascript jquery ajax xmlhttprequest cors