问题与jquery ajax跨域xml响应

Mur*_*nth 4 ajax jquery

这是我xml从网站访问的代码

$(document).ready(function () {
    $.ajax({
        type: "GET",
        url: "http://rxnav.nlm.nih.gov/REST/Ndfrt/search?conceptName=TESTOSTERONE",
        dataType: "xml",
        success: xmlParser

      });
});

function xmlParser(xml) { 
    $(xml).find("entry").each(function () {
        $(".entirecont").append($(this).find('inputConceptName').text());
    });
}
Run Code Online (Sandbox Code Playgroud)

当我将此代码推送到生产时它在本地工作正常它给了我跨域限制.

这是JsFiddle

我知道这是一个跨域请求但是,我该如何解决?

谢谢

T.J*_*der 9

使用XML,您真正的跨域请求的唯一真正选择是,如果该服务器支持CORS,允许您的源,并且您的浏览器支持它.(如果他们有一个JSONP选项,那会更容易.但是,遗憾的是,快速查看他们的API页面表明他们只支持XML和JSON,而不是JSONP.但是请自己看看,不要相信我的话,我没有做详细的阅读.在我看来,如果它们支持JSON但不支持JSONP,这有点奇怪.)

我有时听过但是已经讨论过的另一种选择是使用YQL作为跨域代理.

当然,您也可以运行自己的服务器,向它发出请求,并让它查询rxnav.nlm.nih.gov提要并将其返回给您.然后SOP没有进入它.

附注:要在IE8或IE9中使用带有jQuery的CORS,您需要一个处理使用特殊XDomainRequest对象的插件(IE8和IE9的XMLHttpRequest对象不执行CORS).IE10终于解决了这个问题.