首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery ajax跨域xml响应问题

jquery ajax跨域xml响应问题
EN

Stack Overflow用户
提问于 2013-01-28 18:55:06
回答 4查看 8.1K关注 0票数 4

下面是我从网站访问xml的代码

代码语言:javascript
运行
复制
$(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

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

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-28 18:57:49

使用XML,真正的跨域请求的唯一选择是该服务器支持CORS,允许您的源,并且您的浏览器支持它。(不过,如果他们有一个JSONP选项,那就更容易了。遗憾的是,快速浏览一下他们的API页面就会发现,他们只支持XML和JSON,而不支持JSONP。但是你自己看,别相信我的话,我没有仔细读过。在我看来,如果它们支持JSON而不支持JSONP,那就有点奇怪了。)

我有时听人讨论过的另一种选择是使用YQL作为cross-domain proxy

当然,您也可以运行自己的服务器,向它发出请求,让它查询rxnav.nlm.nih.gov提要并将其返回给您。那么SOP就不会出现在里面了。

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

票数 9
EN

Stack Overflow用户

发布于 2013-01-28 18:57:41

跨域请求只能使用CORSJSONP。获取XML的AJAX请求不能跨域工作

解决方法是使用PHP/ASP.NET/选择的语言在本地服务器上创建一个服务器端代理,然后通过AJAX调用它。

票数 0
EN

Stack Overflow用户

发布于 2013-01-28 18:57:54

不能通过ajax进行跨域请求(json除外)。

我建议你发出本地ajax请求,并在服务器端连接到跨域服务器来获取你需要的数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14560468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档