我正在尝试将POST请求发送到自定义api(我有凭据)但仍然收到401错误“Unathorized”。这是发出请求的代码的一部分:
var httpRequest = new XMLHttpRequest();
var test = [{
"action": "start",
"time": "2014-05-02T13:09:22+02:00",
"channel": {
"id": "rtvslo1"
},
"content": {
"id": "rtvslo1",
"title": "testContent",
"channel_id": "rtvslo1",
"time": "2014-05-02T13:09:22+02:00",
"duration": 3
},
"subscriber": {
"id": "f8721ca0-d1e9-11e3-9c1a-0800200c9a66",
"country": "si"
},
"device": {
"id": "012fa920-d1ea-11e3-9c1a-0800200c9a66",
"type": "tv"
},
"hd": false,
"test": true
}];
var jsonString = JSON.stringify(test);
httpRequest.open('POST', url, true);
httpRequest.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
httpRequest.setRequestHeader("Content-type", "application/json");
httpRequest.send(jsonString);
当我试图查看chrome dev工具中的错误时,我得到 OPTIONS 请求是401 Unathorized,所以它甚至没有进入POST。
在chrom dev工具中我得到输出:名称:事件方法:选项状态401 ...
选项http://xstreampipy.tvbeat.com/api/2.0/events 401(未经授权)myFunction @ test.html:39onclick @ test.html:60 test.html:1 XMLHttpRequest无法加载http://xstreampipy.tvbeat.com/api/2.0/events。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许原点'null'访问。响应的HTTP状态代码为401。
任何帮助将不胜感激:)!
答案 0 :(得分:0)
此错误基本上意味着您正在进行的其他请求是跨域,即mydomain.com - > restservicedomain.com。这些请求不再有效或被删除(不知道为什么他们会这样做)。解决此问题的方法有很多种。您可以使用这些链接来理解和实施解决方案 -
我还在尝试实现CORS请求,因此没有正在运行的代码。