2012-06-26 3 views
0

Итак, я начал работу с PhoneGap/Cordova (windows phone) и WCF Rest Services, однако у меня возникают проблемы с взаимодействием Emulator с сервисом WCF.PhoneGap с сервисом отдыха WCF

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

код у меня показан ниже:

файл JavaScript для применения PhoneGap является следующее:

function getAjax() { 
var jqxhr = $.ajax({ 
    url: 'http://link.to.service.com/service1/', 
    //headers: 
    beforeSend: function (xhr) { 
     //xhr.overrideMimeType('text/plain; charset=x-user-defined'); 
    }, 
    dataType: 'json' 
}) 
.done(function (data) { 
    var element = document.getElementById('ajaxCall'); 
    element.innerHTML = JSON.stringify(data, null, "\t"); 
}) 
.fail(function (xhr, status, error) { 
    showError(error); 
}) 
.always(function() { showAlert("complete"); }); 

}

Тогда служба WCF содержит следующий метод:

[WebGet(UriTemplate = "")] 
    public List<SampleItem> GetCollection() 
    { 
     return new List<SampleItem>() 
        { 
         new SampleItem() 
         { 
          Id = 1, 
          StringValue = "Hello" } 
        }; 
    } 

Поэтому, когда вызов метода javascript «getAjax» завершен, следует вызвать метод службы WCF, но он продолжает входить в функцию сбоя, вместо этого появляется сообщение об ошибке «undefined».

Есть что-то, что я упускаю здесь?

ответ

1

После дальнейших исследований, это была решена с использованием линии:

jQuery.support.cors = TRUE;

Просто небольшая цитата из библиотеки JQuery для тех, кто имеет тот же вопрос, это то, что делает выше линии:

CORS равно истина, если браузер может создать объект XMLHttpRequest и если что XMLHttpRequest объект имеет свойство withCredentials. Чтобы включить междоменные запросы в средах, которые еще не поддерживают корс, но разрешают междоменные запросы XHR (гаджет Windows и т. Д.), Задайте $ .support.cors = true ;. CORS WD

Смежные вопросы