У меня есть существующий java-клиент, поверх которого IOS, разработчики andriod подготовили простые приложения на основе http-запросов. И я пытаюсь добиться того же в приложении HTML5.Отправка простого HTTP-запроса ajax с настраиваемым заголовком
И проблема, с которой сейчас сталкивается, отправляет пользовательский заголовок в запросе AJAX, например, авторизацию с зашифрованными регистрационными данными.
Я попытался достичь того же на разных клиентах REST и смог отправить в заголовке запроса «AUTHORIZATION: BASIC XXXXXX =». И получать надлежащий ответ JSon»
Но если я стараюсь же с помощью Ajax вызова я не смог отправить подобный заголовок запроса. Запрос отправки в качестве опции вместо GET и тега авторизации не будет должным образом в качестве заголовка вместо этого он идет как «Access-Control-Request-Headers: разрешение»....
и вот отрывки я пытавшиеся
<script>
//$.ajaxSetup({ headers: { 'Authorization': 'Basic XXXXXXX='} })
// get form data for POSTING
var vFD = new FormData(document.getElementById('upload_form'));
var oXHR = new XMLHttpRequest();
oXHR.open('POST', "https://123.123.123.123:229/");
//oXHR.send(vFD);
var body = 'Basic XXXXXXX=';
var mUrl = "https://123.123.123.123:229/?json";
var client = new XMLHttpRequest();
client.open('GET', mUrl, true);
client.withCredentials = true;
client.crossDomain = true,
client.setRequestHeader('Authorization', 'Basic XXXXXXX=');
client.send(body);
simpleHttpRequest();
function simpleHttpRequest() {
alert("calling ");
var headers = {
"Authorization": "Basic XXXXXXX="
};
$.ajaxSetup({ "headers": headers });
$.ajaxSetup({ 'cache': false });
$.ajax({
type: "GET",
withCredentials: true,
// data: {
// address: 'http://www.google.com'
// },
crossDomain: true,
Headers: { "Authorization": "Basic XXXXXXX=" },
dataType: "jsonp",
url: mUrl,
cache: false
});
}
xhrToSend();
function xhrToSend() {
// Attempt to creat the XHR2 object
var xhr;
try {
xhr = new XMLHttpRequest();
} catch (e) {
try {
xhr = new XDomainRequest();
} catch (e) {
try {
xhr = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
try {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
} catch (e) {
statusField('\nYour browser is not' +
' compatible with XHR2');
}
}
}
}
xhr.withCredentials = true;
xhr.open('GET', mUrl, true);
xhr.setRequestHeader("Authorization", "numberOfBLObsSent");
xhr.send();
};
</script>
и все различные способы получения не удалось, пожалуйста, помогите мне
Заранее спасибо.
Благодарим за отзыв. Я понял, что это COS CORS, но почему он работает в моих REST, HTTP-браузерах и мобильных приложениях. но не в моих звонках AJAX? –
Междоменная политика не является частью HTTP, ее функциональность веб-браузеров реализуется для повышения безопасности. Следовательно, только веб-браузеры подчиняются правилам междоменного доступа. – levi
См. Http://ru.wikipedia.org/wiki/Same-origin_policy – levi