Использование $ .getJSON для решения проблемы междоменного запроса - PullRequest
2 голосов
/ 20 февраля 2011

Я использую следующий код для создания междоменного запроса с использованием $ .getJSON, запрос завершен, но с ошибками, я не могу точно определить, что является сгенерированной ошибкой.

На основе параметра обратного вызова значения запроса я направляю его к определенному методу, который извлекает необходимые данные JSON.

$.getJSON("http://wthsrvr:45452/Handler.ashx/?Callback=DocumentReadStatus",
  {
      userID: vuserID,
      documentID: vdocumentID,
      format: "json"
  },
  function(result) {
      if (result.readStatus == '1') {
          alert("ACCEPTED");
      }
      else if (result.readStatus == '0') {
          alert("NOT ACCEPTED");
      }
      else {
          alert(result.readStatus);
      }
  });

К вашему сведению: несмотря на локальную разработку, все работало нормально, но после развертывания решения на сервере и попыток сделать то же самое, я получил эту проблему.

Кроме того, я попробовал ту же функциональность с веб-службой, но у меня возникла та же проблема при вызове веб-службы с сервера.

Я использую ajaxSetup для обнаружения сгенерированных ошибок.

$.ajaxSetup({ "error": function(XMLHttpRequest, textStatus, errorThrown) {
    alert("textStatus: " + textStatus);
    alert("errorThrown: " + errorThrown);
    alert("responseText: " + XMLHttpRequest.responseText);
 } 
});

Ответы [ 2 ]

1 голос
/ 20 февраля 2011

Чтобы получить доступ к другому веб-сайту, вы должны использовать JSONP, который фактически становится запросом файла JavaScript, а данные отправляются обратно как часть файла JavaScript.

0 голосов
/ 20 февраля 2011

На самом деле это была проблема с разрешением.Использование HTTP-заголовка «Access-Control-Allow-Origin», чтобы ресурс мог быть доступен для любого домена межсайтовым способом.

Проверьте следующую статью MDN для этого.

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