Javascript 对USPS API的跨域访问

Javascript 对USPS API的跨域访问,javascript,jquery,xmlhttprequest,Javascript,Jquery,Xmlhttprequest,我正试图用jquery向USPS网站发出CORS请求,我已经让它在我的工作pc上工作,只有出于某种原因才使用internet explorer。我在新版IE、Firefox和Chrome上发现了一个CORS错误 在一个由于没有代表而不允许我评论的问题中,他们建议先将其发送到服务器,然后再提出请求,而不是从浏览器,有人能给我解释一下吗?如何使用javascript托管服务器,我只需要使用此API获取跟踪信息,每次尝试这样做时,这种愚蠢的CORS限制都会让我感到痛苦 请帮忙 function s

我正试图用jquery向USPS网站发出CORS请求,我已经让它在我的工作pc上工作,只有出于某种原因才使用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();
    }
});
好的,各位

请容忍我,我犯了一个巨大的初学者错误,并找出了Slakes帮助的错误

所以在我的代码中,我有一个类似名称的函数,它是一个未定义的.response。当我听到第一个助手说Get请求不需要contenttype时,我出现了这个错误,他在进一步研究后马上提出了这个请求

在我删除了所有我正在测试的坏函数之后,我终于得到了工作的响应。这是我的密码

$(document).ready(function() {
$('#trackButton').click(function() {
    var enteredNumber = $('#trackingNumbers').value;
    var trackNumberToBeTracked = '<TrackRequest USERID="648FOOTL0638">    <TrackID ID="9405510200839104436417"></TrackID></TrackRequest>'
    sendTrackingRequest();

    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.addEventListener( "readystatechange", function() {
            if ( request.readyState == 4 ) {
                if ( request.status == 200 ) {
                    // process response
                    var trackingStatus = request.response
                    alert(trackingStatus);
                    console.log(trackNumberToBeTracked);
                } else {
                    alert("error")
                }
            }
        }, false );
        request.send();
    }
});

}))

你需要一个网络服务器。哦,谢谢,你能给我指个地方让我知道那意味着什么吗@Slaks他们的服务器发送
访问控制允许源:
;你其实不应该有问题。您会遇到什么错误?
内容类型对get请求没有意义。
function showResult(request) {
    var xmlDoc = request.response.documentElement;
    removeWhitespace(xmlDoc);
    var outputResult = $("#BodyRows");
    var rowData = xmlDoc.$("#Employee");

    addTableRowsFromXmlDoc(rowData,outputResult);
};