这是我的访问代码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(使用前将#替换为@)