междоменный вызов jquery 1.6.2 ajax пытается позвонить из того же домена - PullRequest
0 голосов
/ 10 сентября 2011

У меня есть настроенный API в другом домене, домене B (api.domainb.com), и я хочу позвонить ему из домена A (www.domaina.com). Однако, когда я делаю звонок из домена A в домен B через jquery ajax, jquery в конце концов пытается позвонить по адресу www.domaina.com/api.domainb.com, что, очевидно, вернет ошибку. Вот соответствующий код javascript

    $.ajax(
      url: 'http://api.domainb.com',
      type: 'GET',
      dataType: 'jsonp',
      data: {hello: 'world'}, 
      crossDomain: true,
      success: function(data){
        alert(JSON.stringify(data))
      }, 
      error: function(error){
        alert(JSON.stringify(error))
      });

В конце концов, код в домене A и домене B будет находиться в одном домене, но сейчас мне нужно сделать междоменный вызов. Любые предложения о том, как сделать эту работу?

Ответы [ 2 ]

2 голосов
/ 10 сентября 2011

Вам просто не хватает протокола, чтобы Ajax-вызов знал, что это другой домен, а не относительный URL. Попробуйте использовать url: 'http://api.domainb.com'.

2 голосов
/ 10 сентября 2011

Вы не можете совершать междоменные звонки;браузеры просто не позволяют этого вообще.Однако причина, по которой вы видите описанное вами поведение, заключается в том, что в вашем URL отсутствует префикс "http://".

Есть некоторые вещи, которые вы можете сделать с довольно новыми HTML5 API длясвоего рода «получить разрешение» на выполнение междоменных вызовов.

edit @Dan правильно указывает, что в то время как XMLHttpRequest (то, что люди обычно называют «ajax») не будет выполнять перекрестныеВ домене (кроме CORS) можно использовать тот факт, что теги <script> могут ссылаться на другие домены, чтобы собрать сервис. Однако код на стороне сервера должен быть другим (обычно это называется ").JSONP ».)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...