无法使用javascript代码获取API结果
我正在进行无法使用javascript代码获取API结果,javascript,azure-api-management,Javascript,Azure Api Management,我正在进行API管理和使用Javascript代码公开API 如果我去开发者门户并检查我的url它会给我正确的结果如下 Response content [{ "ContactId":1, "Name":"Debra Garcia", "Address":"1234 Main St", }, {"ContactId":2, "Name":"Thorsten Weinrich", "Address":"5678 1st Ave W", }] but using javascript code
API管理
和使用Javascript代码公开API
如果我去开发者门户
并检查我的url
它会给我正确的结果
如下
Response content
[{
"ContactId":1,
"Name":"Debra Garcia",
"Address":"1234 Main St",
},
{"ContactId":2,
"Name":"Thorsten Weinrich",
"Address":"5678 1st Ave W",
}]
but using javascript code I'm not getting anything Nor status error code :(
Js Code
<script type="text/javascript">
$(function() {
var params = {
'subscription-key': 'mykey',
};
$.ajax({
url: 'https://mydemo.azure-api.net/marketing/contacts?' + $.param(params),
type: 'GET',
})
.done(function(data) {
alert("success");
})
.fail(function() {
alert("error");
});
});
</script>
响应内容
[{
“联系人ID”:1,
“姓名”:“黛布拉·加西亚”,
“地址”:“主街1234号”,
},
{“联系人ID”:2,
“姓名”:“Thorsten Weinrich”,
“地址”:“西区第一大道5678号”,
}]
但使用javascript代码,我不会得到任何信息,也不会得到状态错误代码:(
Js代码
$(函数(){
变量参数={
“订阅密钥”:“我的密钥”,
};
$.ajax({
网址:'https://mydemo.azure-api.net/marketing/contacts?“+$.param(params),
键入:“GET”,
})
.完成(功能(数据){
警惕(“成功”);
})
.fail(函数(){
警报(“错误”);
});
});
我需要在哪里调试?
确保您已使用正确的策略在API上启用CORS支持。下面有一个示例说明了如何执行此操作(下面的代码片段):
*
http://contoso.com:81
您遇到了什么样的错误?可能是XSS问题?没有错误:(什么是跨站点脚本问题?在浏览器中使用Fiddler()、开发工具(Chrome和Internet Explorer中的F12)或托管服务,如Runscope()作为API的解块代理。我将首先使用浏览器中的工具,并使用“网络”选项卡查看API HTTP调用返回的响应(400/500响应范围内的任何响应都不好)。@SimonW在F12获得200状态代码且请求正文中没有数据后,感谢您:(我需要配置的确切位置:O我已安装此安装包Microsoft.AspNet.WebApi.cors此策略是通过Azure API管理的发布者门户添加的。
<cors>
<allowed-origins>
<origin>*</origin> <!-- allow any -->
<!-- OR a list of one or more specific URIs (case-sensitive) -->
<origin>http://contoso.com:81</origin> <!-- URI must include scheme, host, and port. If port is omitted, 80 is assumed for http and 443 is assumed for https. -->
</allowed-origins>
</cors>