Кросс-сайт AJAX Запрос - PullRequest
       1

Кросс-сайт AJAX Запрос

0 голосов
/ 24 ноября 2010

То, что я точно пытаюсь построить, это ИНТЕРФЕЙС, через который пользователь может отправлять запрос на мой сайт и отображать ответ в своем браузере.

Например

$.post(
     'http://www.mysite.com/thirdpartyrequest.php',
     { param1: value1, param2: value2 },
     function(data) {
         $("#universalid").html(data);//Update with the response
     }
);
//however it is not allowed.

Любая идея, как сделать такой межсайтовый Ajax-запрос

1 Ответ

4 голосов
/ 24 ноября 2010

Лучше всего использовать JSONP.Проверьте:

http://api.jquery.com/jQuery.getJSON/

http://en.wikipedia.org/wiki/JSON

Если у вас есть сервер, предоставляющий такие данные, как:

http://my.server.com/somedata.json

{
   'some': ['fancy', 'json' ],
   'structure: 'here'
}

Вы превращаете это вJSONP, предоставив параметр обратного вызова в URL-адресе запроса - де-факто стандартное имя для него callback.Затем на сервере вам нужно проверить этот параметр и обернуть свой результат в этот обратный вызов (фактически превратив его в javascript вместо json).

http://my.server.com/somedata.json?callback=receive_this

receive_this({
   'some': ['fancy', 'json' ],
   'structure: 'here'
});

(Для краткости, тип mime ответа для json долженбыть application/json в то время как для jsonp это должно быть application/javascript)

Клиент теперь (концептуально) загружает json следующим образом:

<script type="text/javascript">

   var receive_this = function(json) {

     // do some stuff with data here.

   };

</script>

<script type="text/javascript" src="http://my.server.com/somedata.json?callback=receive_this"></script>

На практике вы используете что-то вроде jQuery длядинамически вставьте тег сценария запроса jsonp в DOM.По умолчанию jQuery вызывает параметр запроса обратного вызова callback.

$.ajax({
  url: 'http://my.server.com/somedata.json',
  dataType: 'jsonp',
  success: receive_this
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...