2013-09-26 7 views
2

Я зову перекрестный домен WebService апите из AJAX в моих JS, но я получаю сообщение об ошибке, как:Ошибка при вызове Междоменного API

«XMLHttpRequest не может загрузить http://url2.com/social/polling/get_poll Origin http://url1.com не допускается. Access-Control-Allow-Origin»

Я также попытался установить Access-Control-Allow-Origin на ***** в заголовке запроса, но затем не увенчались успехом, я получаю ту же ошибку

Бел вл является то, что я на самом деле делает:

$.ajax({ 
     type : "POST", 
     dataType : "jsonp", 
     data : { 
      pollId : pollId 
     }, 
     /* header : {'Access-Control-Allow-Origin':'*'}, */ 
     url : "http://url2.com/social/rs/polling/get_poll", 
     beforeSend : function(xhr) { 
      xhr.setRequestHeader('Access-Control-Allow-Origin', 
        '*'); 
     }, 

     success : function(response) { 
      var html; 

      var html = "<div ><h2>" + response.topic + "</h2>"; 
      for (var index = 0; index < response.options.length; index++) { 
       html = html 
         + "<input type=\"checkbox\" name=\"option\" value=\"" 
         + response.options[index] + "\" />" 
         + response.options[index] + "<br/>"; 
      } 
      html = html 
        + "<input type=\"button\" value=\"Submit\" onclick=\"pollIT(" 
        + response.pollId + ", '" + response.topic 
        + "'); \" /></div>"; 
      $("#question").append(""); 
      $("#question").append(html); 
      html = ""; 

     }, 
     error : function(e) { 
      console.log(e); 
      return false; 
     } 

    }); 

Я также попытался установить заголовок, как

header : {'Access-Control-Allow-Origin':'*'} 

, но до сих пор не повезло. Кто-нибудь об этом знает?

+0

Вы контролируете url1.com? Вам нужно иметь настройки в веб-службе. не по вашему запросу. –

ответ

0

Перекрестный домен AJAX должен быть разрешен на сервере, на который вы запрашиваете, его нельзя разрешить в запросе.

Таким образом, вы будете иметь доступ к серверу url1.com Если да, то вот руководство о том, как включить этот доступ: http://www.webdevdoor.com/jquery/cross-domain-browser-json-ajax/

Если у вас нет доступа и хотите работать вокруг вы можете вызвать скрипт на своем сервере с помощью AJAX, который сделает запрос CURL на внешний сервер.

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