这是我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
我知道这是一个跨域请求但是,我该如何解决?
谢谢
使用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终于解决了这个问题.