Добрый день. Есть задача: используя REST API сервиса доставки, описанный здесь, осуществить запрос стоимости доставки. Для этого нужно открыть сессию(Login), выполнить запрос, а после закрыть(Logout). Не получается открыть сессию.
Написал js-код для осуществления кросс-доменного запроса и возврата результата.
$(document).ready(function () {
$.ajax({
type: 'POST',
url: 'http://e-solution.pickpoint.ru/apitest/login',
crossDomain: true,
contentType: 'application/json',
dataType: 'json',
data: {
Login: 'apitest',
Password: 'apitest'
},
xhrFields: {
withCredentials: false
},
success: function (status) {
console.log(status);
},
error: function (xhr, status) {
console.log(xhr);
console.log(status);
}
});
});
Получаю ошибку в консоли:
XMLHttpRequest cannot load http://e-solution.pickpoint.ru/apitest/login. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '<Адрес моего сайта>' is therefore not allowed access.
Вывод:
Object {readyState: 0, responseJSON: undefined, status: 0, statusText: "error"}
На основе гугления добавил соответствующие заголовки. Фрагмент файла .htaccess:
<IfModule mod_headers.c>
Header add X-Content-Type-Options nosniff
Header add Access-Control-Allow-Origin: *
Header add Access-Control-Allow-Credentials: true
Header add Access-Control-Allow-Headers: "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods: "PUT, GET, POST, DELETE, OPTIONS"
</IfModule>
Так же добавил в начало файла строку:
header("Access-Control-Allow-Origin: *");
Но по-прежнему не получается осуществить запрос. Что делать?
Политика безопасности браузеров запрещает выполнение кроссдоменных AJAX запросов. Чтобы это обойти, как было замечено выше нужно добавить заголовок Access-Control-Allow-Origin, но возвращать его должен домен к которому вы обращаетесь. Я так понимаю доступа для изменения настроек у вас к нему нет.
Обходится это следующим образом, вы делаете запрос к серверному скрипту, расположенному на вашем сайте, который перенаправляет запрос на нужный сайт.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В массиве есть три объекта (в данном случае)Подскажите что мне сделать что бы я мог спокойно пройтись по каждому из них for циклом, взять значения...
Добрый деньМожно ли как-нибудь реализовать замену содержимого в слайдере bxslider при нажатии ссылки?