gpt4 book ai didi

json - 无法通过JQuery获取外部API数据

转载 作者:行者123 更新时间:2023-12-01 01:47:26 25 4
gpt4 key购买 nike

我试图通过 JQuery 获取外部 REST API 数据,但它返回未定义。但是当我使用本地 REST API url 时,它就可以工作。任何人都可以解释一下问题是什么。任何代码示例将不胜感激。

这就是我通过 JQuery 访问外部 Rest API 的方式。

function GetCompanyName(id) {
jQuery.support.cors = true;
$.ajax({
url: 'http://novacompanysvc.azurewebsites.net/api/companies' + '/' + id,
type: 'GET',
dataType: 'jsonp',
success: function (data) {
WriteResponse(data);
},
error: function (x, y, z) {
alert("company" + x + '\n' + y + '\n' + z);
}
});
}

最佳答案

  1. 结果是 XML,因此您需要设置 dataType: "text/xml" 然后解析它:

                success: function (data) {
    if (window.DOMParser)
    {
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(data,"text/xml");
    }
    else // Internet Explorer
    {
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async=false;
    xmlDoc.loadXML(data);
    }
  2. 我尝试对此进行测试,但得到:is not allowed by Access-Control-Allow-Origin that is same-origin limit so make certain you have access to this API or you例如,必须使用 PHP 中的 CURL 在服务器上执行此操作。

  3. 您在问题中显示的函数中获取了 id 变量,但您没有使用它,如果您想发送,请添加:

    ,数据:{ id:id }

请求应如下所示:

      function GetCompanyName(id) {
jQuery.support.cors = true;
$.ajax({
url: 'http://novacompanysvc.azurewebsites.net/api/companies',
type: 'GET',
data:{ id:id },
dataType: "text/xml",
success: function (data) {
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(data,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(data);
}
WriteResponse(data);
},
error: function (x, y, z) {
alert('error');
}
});
}

关于json - 无法通过JQuery获取外部API数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19340841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com