Jquery Ajax не работает - PullRequest
       23

Jquery Ajax не работает

0 голосов
/ 07 марта 2012

В течение нескольких дней мы стремимся найти решение, но не можем понять, почему этот код не работает.

var bing_url='http://api.search.live.net/json.aspx?JsonType=callback&JsonCallback=?&Appid=[OurApp Id]&query='+keyword+'&sources=web';

$.ajax({
  type: "GET",
  url: bing_url,
  dataType:"jsonp",
  success: function(response)
  {
    $("#result").html('');
    if(response.SearchResponse.Web.Results.length)
    {
      $.each(response.SearchResponse.Web.Results, function(i,data)
      {
        var title=data.Title;
        var dis=data.Description; 
        var url=data.Url;

        var finall="<div class='webresult'><div class='title'><a href='"+url+"'>"+title+"</a></div><div class='desc'>"+dis+"</div><div class='url'>"+url+"</div></div>";
        $("#result").append(final); // Result

      });

      parentwin.document.getElementsByTagName("body").item(0).innerHTML += final;
    }
    else
    {
      $("#result").html("<div id='no'>No Results</div>");
    }
  }             //success
});

Этот скрипт будет вызываться из любого другоговеб-страница из IE.Он будет искать результаты Bing с помощью Bing API, а затем результаты будут добавлены на исходную страницу.

Проблема:

Этот скрипт работает, когда мы непосредственно открываем его,Но он не работает, когда вызывается с другой страницы.

1 Ответ

1 голос
/ 08 марта 2012

Скорее всего, вы нарушаете ту же политику происхождения .Вы можете получить доступ только к файлам, которые находятся на том же сервере, что и скрипт.

Также из вики-статьи о XmlHttpRequest объекте:

XMLHttpRequest зависит от браузерата же политика происхождения, что по соображениям безопасности запросы будут успешными только в том случае, если они направлены на тот же сервер, который обслуживал исходную веб-страницу.Существуют альтернативные способы обойти эту политику, если это необходимо.

...