2012-04-04 5 views
0

Я пытаюсь получить значение из CGI с jquery ajax. я не могу изменить какие-либо настройки CGI, потому что это не на моем собственном сервере.jquery ajax: читать значение из CGI

все, что я знаю о CGI является то, что, если я сразу записываю это в адресной строке браузера:

«HTTP: //otherdomain/cgi-bin/getvalue.exe значение»

тогда я получите значение ответа, т.е. 1234, которое отображается в пустое окно браузера.

со следующим вызовом ajax. Я получаю значение ответа в firebug -> network -> response tab (1234). но я не могу получить доступ к значению в javascript. console.log (data) просто возвращает «undefinded».

есть ли способ поймать значение с помощью javascript?

Я думаю, что мне нужно отправить запрос ajax как dataType: «script», потому что пароль (cookie) должен быть отправлен в CGI. если я выбираю dataType: «text» пароль из cookie не отправляется в заголовок запроса.

$.ajax({ 
     type: "GET", 
     url: "http://otherdomain/cgi-bin/getvalue.exe?value", 
     crossDomain: true, 
     cache: true, 
     dataType: "script", 
     success: function(data, textStatus, jqXHR) { 
      console.log(data); 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
      console.log(errorThrown); 
      console.log(textStatus); 
      console.log(jqXHR);   
     } 
    }); 
+0

Свойство 'dataType' - это ожидаемый тип данных ** response **, а не запрос. Если вы оставите его пустым, в нем используется «наилучшее предположение» по умолчанию, в результате чего jQuery пытается угадать тип в зависимости от формата ответа. –

+0

Если я использую другой тип данных, чем сценарий, пароль не отправляется на сервер. – user1313691

+0

если я использую другой тип данных, чем ** script ** пароль не отправляется на сервер. заголовок запроса ** Cookie: pwd = xxxx ** отправляется только тогда, когда я выбираю dataType: «script» в вызове ajax. – user1313691

ответ

1

В связи с same origin policy AJAX не допускает запросы междоменных, за исключением тех, которые имеют характеристику типа JSONP. Вам нужно настроить прокси-сервер на вашем сервере для запроса с использованием AJAX, который отправляет запрос другому домену, а затем возвращает ответ, который он получает на вызов AJAX.

+0

мой websert anser с Access-Control-Allow-Origin: *. Таким образом, перекрестная доменность не является проблемой. – user1313691

Смежные вопросы