我正在尝试获得基本的API调用,但API提供程序不提供任何开发人员支持.它们要求每个呼叫都在base64基本身份验证标头中发送.当我使用他们的在线API测试实用程序时,我的密钥是有效的,但我不能让它在我自己的代码或JSFiddle.net中工作.我甚至试图复制从我的代码中的测试实用程序返回的"身份验证:基本...."值,但这不起作用.
我在Stackoverflow中查看了很多示例,并且我对其他API使用类似的代码没有问题.base64基本身份验证对我来说是新的,当我在IE中运行代码时,调试器会声明一个我找不到的语法错误.如果发生任何错误,我期待401错误.
有关错误的任何想法或其他调试方法?
$(document).ready(function() {
var mySecret = "somevalue";
var myClientId = "somevalue";
$.ajax({
url: "https://www.udemy.com/api-2.0/courses/",
type: 'GET',
dataType: "json",
contentType: "text/plain",
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa(myClientId+":"+ mySecret));
},
success: function(data) {
alert("hi");
}
});
});
Run Code Online (Sandbox Code Playgroud)
你可能在这里得到的是CORS或者问题Cross Origin Resource Sharing.它可以防止网站随意提出请求.它的原因很复杂,但它会让你安全!虽然,这是一个很大的痛苦.
启动您方便的花花公子Chrome Dev Tools,并查看该网络请求实际发生的情况.由于同源策略(CORs),它在JSFiddle中无效.
您可以在浏览器中获取JSON,因为这不是跨站点请求.查看哪些标头来回发送,并查看Udemy API门户中是否有一种方法可以Origin为Allow-Origin标头设置可接受的方式.您的IP地址可能是您在本地工作的.
| 归档时间: |
|
| 查看次数: |
2374 次 |
| 最近记录: |