Междоменный JSONP с текстовым файлом и жестко закодированным обратным вызовом - PullRequest
0 голосов
/ 20 ноября 2011

Я знаю, что это популярная проблема, и люди решают ее, написав прокси на стороне сервера.Но я хочу избежать этого, у меня есть файл с жестко заданным обратным вызовом jsonResponse():

jsonpResponse({"keys": ["0", "2", "3", "4", "5", "6"], "promoted": [3, 10, 44, 47, 47, 31], "upcoming": [187, 14, 285, 366, 322, 225]});

, и я хочу получить его из другого домена с JQuery.ajax():

$.ajax({
  type: "GET",
  url: URL + filename, 
  dataType: "text jsonp",
  jsonpCallback: "jsonpResponse",
  success: function(data) {
    // wrapping data
  }
});

и я получаю ошибку:

XMLHttpRequest cannot load http://first.domain/filename.jsonp. 
Origin http://second.domain is not allowed by Access-Control-Allow-Origin.

Есть ли способ сделать то, что я хочу таким образом?Мне действительно нужно использовать прокси?Если это правда, то почему?

1 Ответ

3 голосов
/ 20 ноября 2011

Вы ошибаетесь $.ajax.

Вам необходимо пройти dataType: "jsonp"; он не поддерживает несколько значений.

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

...