Tôi đang tạo ứng dụng tiêu thụ Caspio API. Tôi đang gặp một số vấn đề khi xác thực API của họ. Tôi đã dành 2-3 ngày cố gắng để tìm ra điều này nhưng nó có thể là do một số hiểu biết về kết thúc của tôi. Tôi đã đọc vô số bài viết trên stackoverflow bài và nếu không nhưng đã không giải quyết được vấn đề. Dưới đây là một ví dụ về giải pháp của tôi dựa trên những gì tôi đã xem xét và tôi nhận được một thông báo mã trạng thái 400; Tôi làm gì sai ở đây? (Vui lòng cung cấp cũng nhận xét ví dụ mã và tôi muốn để KHÔNG đã liên kết được đăng ở đây tham khảo các tài liệu khác như tôi đã xem xét những rộng rãi Cảm ơn.!):Xác thực cơ bản bằng cách sử dụng JavaScript
Một số tài liệu tham khảo tôi đã xem xét:
1) Pure JavaScript code for HTTP Basic Authentication?
2) How to make http authentication in REST API call from javascript
tôi muốn sử dụng phương thức xác thực này như mô tả của caspio dưới đây:
Là một thay thế để bao gồm thông tin đăng nhập trong phần thân yêu cầu, một khách hàng có thể sử dụng lược đồ xác thực HTTP cơ bản. Trong trường hợp này, yêu cầu xác thực sẽ được thiết lập theo cách sau:
Phương pháp: POST
URL: endpoint Mã thông báo
Body: grant_type = client_credentials
Tiêu đề thông số:
Authorization: xác thực Basic cơ bản lĩnh vực
Dưới đây là mã Javascript và HTML của tôi.
JavaScript:
var userName = "clientID";
var passWord = "secretKey";
function authenticateUser(user, password)
{
var token = user + ":" + password;
// Should i be encoding this value????? does it matter???
// Base64 Encoding -> btoa
var hash = btoa(token);
return "Basic " + hash;
}
function CallWebAPI() {
// New XMLHTTPRequest
var request = new XMLHttpRequest();
request.open("POST", "https://xxx123.caspio.com/oauth/token", false);
request.setRequestHeader("Authorization", authenticateUser(userName, passWord));
request.send();
// view request status
alert(request.status);
response.innerHTML = request.responseText;
}
HTML:
<div>
<div id="response">
</div>
<input type="button" class="btn btn-primary" value="Call Web API" onclick="javascript:CallWebAPI();" />