Форум программистов, компьютерный форум, киберфорум
JavaScript: API
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для m1ndgr3p
23 / 23 / 1
Регистрация: 31.05.2013
Сообщений: 108

Cors ajax

26.05.2016, 16:07. Показов 1556. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Возникла проблема с аяксом.

Когда отправляю запрос - получаю ответ "XMLHttpRequest cannot load http://api.someserver.com. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://myserver.com' is therefore not allowed access."

На сколько я понимаю в ответ сервера получаю ошибку.

код формы:
HTML5
1
2
3
4
<input id="username" type="text" />
<input id="password" type="assword" />
<button id="submit" onclick="makeRequest()" >Submit</button>
<div id="response"></div>
код js:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function makeRequest() {
    var username = document.getElementById('username');
    var password = document.getElementById('password');
    var url = "http://api.someserver.com";
    var body = '<?xml version="1.0" encoding="UTF-8"?>' +
                '<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" ' +
                'xmlns:ns1="urn:StartAJob.Intf-IStartAJob" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' +
                'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
                'xmlns:enc="http://www.w3.org/2003/05/soap-encoding">' +
                '<env:Body><ns1:Login env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">' +
                '<UserName xsi:type="xsd:string">' + username + '</UserName><Password xsi:type="xsd:string">' + password + '</Password>' +
                '<IP xsi:type="xsd:string"></IP></ns1:Login></env:Body></env:Envelope>';
    var xhttp = new XMLHttpRequest();
    xhttp.open("POST", url, true);
 
    if (!xhttp) {
        document.getElementById("response").innerHTML = "not supported";
        return;
    }
 
    xhttp.onload = function() {
        document.getElementById("response").innerHTML = xhttp.responseText;
    };
 
    xhttp.onerror = function() {
        document.getElementById("response").innerHTML = 'There was an error making response';
    };
 
    xhttp.setRequestHeader("Content-type", "text/xml");
    xhttp.send(body);
}
http request:
HTML5
1
2
3
4
5
6
7
8
9
10
11
Hypertext Transfer Protocol
Host: api.someserver\r\n 
Connection: keep-alive\r\n
Access-Control-Request-Method: POST\r\n
Origin: http://myserver.com\r\n
Access-Control-Request-Headers: content-type\r\n
Accept: */*\r\n
DNT: 1\r\n
Referer: http://myserver.com/\r\n
Accept-Encoding: gzip, deflate, sdch\r\n
Accept-Language: en-US,en;q=0.8,ru;q=0.6\r\n
http response:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
HTTP/1.1 200 OK\r\n
Content-Type: text/html\r\n
Content-Encoding: gzip\r\n
Vary: Accept-Encoding\r\n
Server: Microsoft-IIS/7.5\r\n
X-Powered-By: ASP.NET\r\n
Date: Thu, 26 May 2016 13:36:34 GMT\r\n
Connection: close\r\n
Content-Length: 484\r\n
X-XSS-Protection: 1; mode=block\r\n
Strict-Transport-Security: max-age=31536000;\r\n
X-XSS-Protection: 1; mode=block\r\n
X-Content-Type-Options: nosniff\r\n \r\n
в .htaccess добавлял Header set Access-Control-Allow-Origin "*", но как я понял у целевого сервера не включена подобная опция.

пытался отправлять json строку и через jquery $.ajax().
подскажите, в чем может быть проблема
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.05.2016, 16:07
Ответы с готовыми решениями:

Chrome и CORS запросы
Добрых времени суток. Есть рабочий плагин для firefox, который использует CORS запросы к нескольким сторонним API. Политика CORS при этом...

WEB Audio API (MediaElementAudioSource outputs zeroes due to CORS access restrictions for.)
На моем сервере работает apache и icecast2. На апаче работает вебинтерфейс плеера, а icecast вещает звук на порту 8000. В итоге...

Не понятно зачем нужен CORS
Я не понимаю, зачем нужен CORS? Я знаю как он работает, знаю про заголовок Origin, и прочие вещи. Я только не пойму, в каких случаях, если...

5
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
26.05.2016, 16:59
в php попробовать header('Access-Control-Allow-Origin: *');
jsonp - как вариант, раз разберетесь затем на вы с межсайтовым обменом будете :-)
0
 Аватар для m1ndgr3p
23 / 23 / 1
Регистрация: 31.05.2013
Сообщений: 108
26.05.2016, 17:08  [ТС]
пробовал и в php - не помогло.
дело в том, что я не знаю в каком формате принимает рекваесты апи.
jsonp рассматривал как альтернативу, но не думаю что ответ сервера изменится...
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
26.05.2016, 17:39
Цитата Сообщение от m1ndgr3p Посмотреть сообщение
sonp рассматривал как альтернативу, но не думаю что ответ сервера изменится..
ай яй-яй
я же написал раз разобравшись вы будете на вы с межсайтовым обменом
на пальцах
вы динамически вставляете тег script на страницу. скрипт стучится по указанному вами src
сервер отрабатывает ссылку
и здесь два варианта можно возвращать самовыполняющийся код либо код который выполнит колбек по завершению

Добавлено через 12 минут
Зачем для отправки полей логина и пароля гонять ненужный контент xml?
0
 Аватар для m1ndgr3p
23 / 23 / 1
Регистрация: 31.05.2013
Сообщений: 108
26.05.2016, 23:43  [ТС]
Цитата Сообщение от m1ndgr3p Посмотреть сообщение
дело в том, что я не знаю в каком формате принимает рекваесты апи.
был намек на xml формат.

Добавлено через 1 час 13 минут
как я и предпологал ответ сервера таков же...
0
 Аватар для m1ndgr3p
23 / 23 / 1
Регистрация: 31.05.2013
Сообщений: 108
29.05.2016, 23:04  [ТС]
Как оказалось мой IP заблокировали. По этой причине получал такие хедеры в респонсе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.05.2016, 23:04
Помогаю со студенческими работами здесь

Ошибка 'blocked by CORS policy'
Код: function init() { $.getJSON(&quot;main.json&quot;, goodsOut); } function goodsOut(data) { var put=''; for (var...

Побеждаем CORS через JSONP, JS плагин в Unity3D
Всем привет. Есть url, если зайти на него с браузера там будет текст вида document.write(&quot;Много_текста&quot;);, результат работы...

Какой вариант crossdomain лучше? CORS, JSONP, Iframe?
Привет. Сразу объясню суть задачи: Есть два сервера, назовем их: example1.com и example2.com С сервера example1.com на сервер...

После вставки ответа ajax в input запроса, ответ ajax не изменяется
Здравствуйте! В общем так, есть поле input, есть таблица с полем count. Задача: изменить содержимое поле count по средством ajax, но при...

не работает ajax из ajax`a
сама функция,которая не работает(ответа не приходит,следовательно не посылается ничего?) function onl_f(f,s) { var...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru