【发布时间】:2017-11-14 12:12:55
【问题描述】:
我正在尝试使用 jquery 向 USPS 网站发出 CORS 请求,我已经让它在我的工作电脑上工作,只是出于某种原因使用 Internet Explorer。我在较新版本的 IE 以及 Firefox 和 Chrome 上遇到了 CORS 错误。
在一个由于没有代表而无法评论的问题中,他们建议先将其发送到服务器然后发出请求而不是从浏览器发出请求,有人可以向我解释一下吗?我如何使用 javascript 托管服务器,我只需要使用这个 API 来获取跟踪信息,每次我尝试做这样的事情时,这种愚蠢的 CORS 限制让我感到很痛苦。
请帮忙。
function sendTrackingRequest(x) {
var requestURL = "http://production.shippingapis.com/ShippingAPI.dll?API=TrackV2&XML="
var request = new XMLHttpRequest();
request.open( "GET", requestURL + trackNumberToBeTracked, true);
// various sanitizations should be employed on the backend when dealing with user input
request.responseType = "text/xml";
request.setRequestHeader( "Content-Type", "xml" );
request.addEventListener( "readystatechange", function() {
if ( request.readyState == 4 ) {
if ( request.status == 200 ) {
// process response
var trackingStatus = request.response
showResult(trackingStatus);
console.log(trackNumberToBeTracked);
} else {
alert("error")
}
}
}, false );
request.send();
}
});
【问题讨论】:
-
你需要一个网络服务器。
-
哦,谢谢,你能指出我能弄清楚这意味着什么的地方吗? @slaks
-
他们的服务器发送
Access-Control-Allow-Origin: *;你实际上不应该有问题。你得到什么错误? -
Content-Type对 GET 请求毫无意义。
标签: javascript jquery xmlhttprequest