Я строю приложение с доступом в Dropbox, а authorization
шаг возвращается No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8082' is therefore not allowed access. The response had HTTP status code 400.
CORS вопрос: ПОЛУЧИТЬ позвонить в Dropbox AUTH с использованием AJAX из Bootstrap модальный не работает
Приложение находится в HTML/JQuery/Bootstrap/Кордова.
В соответствии с documentation, я должен был быть в состоянии отправить simple cross-site request
с использованием contentType: 'text/plain; charset=dropbox-cors-hack'
, но я получаю вышеуказанную ошибку.
client_id
соответствует тому, что находится в моем Dropbox/myapp App key
. redirect_uri
соответствует тому, что находится в моем Dropbox/myapp Redirect URIs
.
Вот мой код:
var client_id = 'matchesCodeInDropboxAppRegistration';
var response_type = 'token';
var redirect_uri = 'https://www.dropbox.com/1/oauth2/redirect_receiver';
//var csrfToken = generateCSRFToken();
var csrfToken = 'some_val'; // in process
var data = 'response_type=' + response_type + '&client_id=' + client_id + '&redirect_uri=' + redirect_uri + '&state=' + csrfToken + '&reject_cors_preflight=true';
$.ajax({
method: 'GET',
url: 'https://www.dropbox.com/1/oauth2/authorize?' + data,
contentType: 'text/plain; charset=dropbox-cors-hack',
success: function(html) {
$("#db-modal-body").html(html);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("AdminDBAuthView: db_connect: fail:", textStatus, errorThrown, jqXHR);
}
});
$("#dropbox-connect").modal("toggle");
Кстати, я попробовал это, и получил тот же результат:
$("#dropbox-connect").modal({
remote: 'https://www.dropbox.com/1/oauth2/authorize?' + data,
show: true
});
Backbone.js v1.3.3/ underscore.js v1.8.3/ самозагрузки v3.3.6/v2.2.4 JQuery/ Cordova v6.1.1/ Узел 5.10.1/NPM v3.8.6
Я некоторое время отстраняюсь от этого, поэтому любая помощь очень ценится.
Какой браузер вы используете? – Jordan
Похоже, что проблема с использованием AJAX для доступа к ресурсу HTTPS при загрузке страницы через HTTP, это, скорее всего, проблема. – Jordan
@ Jordan Я работал в Chrome – royhink