jquery ajax跨域xml响应问题

2024-04-26

这是我的访问代码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());
    });
}

当我将此代码推送到生产环境时,它在本地运行良好,它给了我跨域限制。

这里是JsFiddle http://jsfiddle.net/bpBtC/96/

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

Thanks


对于 XML,真正跨域请求的唯一真正选择是该服务器是否支持CORS http://www.w3.org/TR/access-control/,允许您的来源,并且您的浏览器支持它。 (如果他们有一个JSONP http://en.wikipedia.org/wiki/JSONP#JSONP不过,这会更容易。但遗憾的是,快速浏览一下他们的 API 页面表明他们只支持 XML 和 JSON,而不支持 JSONP。不过你自己看吧,不要相信我的话,我没有做详细的阅读。在我看来,如果它们支持 JSON 但不支持 JSONP,那就有点奇怪了。)

我有时听到讨论但已经做过的另一个选择是使用YQL http://developer.yahoo.com/yql/ as a 跨域代理 http://ajaxian.com/archives/using-yql-as-a-proxy-for-cross-domain-ajax.

当然,你也可以运行自己的服务器,向it,并让它查询 rxnav.nlm.nih.gov feed 并将其返回给您。那么SOP就不再涉及了。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jquery ajax跨域xml响应问题 的相关文章

随机推荐