Json 无法通过JQuery获取外部API数据
我试图通过JQuery获取外部RESTAPI数据,但它返回了未定义的数据。但是当我使用我的本地RESTAPI url时,它是有效的。谁能解释一下问题出在哪里。任何代码样本将不胜感激 这就是我如何通过JQuery访问外部RESTAPIJson 无法通过JQuery获取外部API数据,json,jquery,rest,cross-domain,Json,Jquery,Rest,Cross Domain,我试图通过JQuery获取外部RESTAPI数据,但它返回了未定义的数据。但是当我使用我的本地RESTAPI url时,它是有效的。谁能解释一下问题出在哪里。任何代码样本将不胜感激 这就是我如何通过JQuery访问外部RESTAPI function GetCompanyName(id) { jQuery.support.cors = true; $.ajax({ url: 'http://novacompanysvc.azurewebsi
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);
}
});
}
数据类型:“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);
}
不被访问控制允许来源
这是同一来源限制,因此请确保您有权访问此API,否则您将不得不在服务器上使用PHP中的CURL进行访问 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结果不是JSONP,你能粘贴一个示例代码吗?结果是一个xml,但你必须通过回调获取json才能使其工作…我是Jquery的新手,请参考一些示例代码,以便我了解更多信息。我还在url末尾添加了id,但仍然存在相同的错误。现在查看我编辑的问题。您的更改是错误的,`+id`将创建一个无效的URL,您应该像我向您展示的那样传递变量。另外,正如我在第2篇中所说的,我不想让它工作,因为api页面有一个来源限制,所以如果您不在其范围内或在同一个域中,您将无法使用jquery加载数据。谢谢!但是我们如何访问托管在其他域的Rest api数据呢?从用户端(使用jquery),您可以使用$.get$.post$.ajax向任何页面发送请求,但是您必须了解目标页面应该接受这种类型的请求-“XMLHttpRequest”如果您发布的目标页面也不接受远程请求,您将通过“访问控制允许源…”获得拒绝。假设主机允许用户加载页面,唯一的方法是使用PHP、ASP、,RUBY,无论您需要什么,都可以模拟用户请求并发送正确的标题,这样网页就会认为您是人类用户。在PHP中,您可以使用CURL、file\u get\u contents等。。。现在有意义了吗?