0

我正在尝试设置 Autodesk 查看应用程序的快速 POC,但我遇到了身份验证问题。我已经检查了以下问题以获得一般帮助,但它们要么涵盖了非常具体的问题,例如 HashTableMapping,要么甚至没有得到回答:

HTTP 状态 415 - 执行 POST 时不支持的媒体类型

使用 Alamofire 分段上传时的 HTTP 状态 415

尝试访问 localhost 时出现 HTTP 错误 500

请求失败,HTTP 状态为 415

根据 Autodesk 的文档,我的请求结构完全没问题,但似乎抛出了 415 错误。任何人有任何想法或看到我没有看到的东西?下面是我的代码:

var XmlHttpRequest = require("xmlhttprequest").XMLHttpRequest;
console.log("references loaded");

var xhr = new XmlHttpRequest();
xhr.open("POST", "https://developer.api.autodesk.com/authentication/v1/authenticate", false);

var headerRequest = "Content-Type: application/x-www-form-urlencoded";
var headerValue = 
    "client_id=_someSecretValue_" + "&" +
    "client_secret=_someOtherSecretValue_" + "&" +
    "grant_type=client_credentials" + "&" +
    "scope=data:read";

xhr.setRequestHeader(headerRequest, headerValue);
xhr.send();

console.log(xhr.status); //getting a 415 here
console.log(xhr.statusText);
4

1 回答 1

1

明白了——是我自己的错误逻辑把我搞砸了。第一个请求标头的格式不正确,我需要将我的信息作为值发送:

var XmlHttpRequest = require("xmlhttprequest").XMLHttpRequest;
console.log("references loaded");

var xhr = new XmlHttpRequest();
xhr.open("POST", "https://developer.api.autodesk.com/authentication/v1/authenticate", false);

//var headerRequest = "Content-Type:application/x-www-form-urlencoded";
var headerValue = 
    "client_id=_someSecretValue_" + "&" +
    "client_secret=_otherSecretValue_" + "&" +
    "grant_type=client_credentials" + "&" +
    "scope=data:read";

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(headerValue);

console.log(xhr.status);
console.log(xhr.statusText);
于 2016-06-19T14:40:57.943 回答