Jquery Rest общение с WCF 3.5 - PullRequest
       13

Jquery Rest общение с WCF 3.5

4 голосов
/ 25 ноября 2008

Я тестирую основы для обмена остальными сообщениями между сайтом asp.net mvc и сервисом WCF 3.5. Служба построена с использованием шаблона, найденного в стартовом наборе WCF REST, найденном в codeplex. Я хотел бы обмениваться сообщениями json, используя jquery. Служба REST Singleton работает должным образом и предоставляет примеры всех возможных вызовов, добавляя параметр справки и конец uri. Я прибываю для выполнения запросов GET со встроенным jquery $ .getJSON. У меня проблемы с выполнением PUT (для обновления значений) и POST.

$.ajax({
     type: "PUT",
     dataType: "json",
     url: "http://localhost:1045/Service.svc/?format=json",
     data: '{"Value":testvalue}'
 }); 

Каков наилучший подход для этого? Можно ли вообще не использовать г-жу Аякс, и правильно ли ее обойти?

Ответы [ 3 ]

5 голосов
/ 30 ноября 2008

Также убедитесь, что ваш contentType установлен правильно в вашем вызове ajax.

contentType: "application/json"

JQuery по умолчанию

contentType: "application/x-www-form-urlencoded"

4 голосов
/ 25 ноября 2008

«PUT» и «DELETE» не поддерживаются всеми браузерами в соответствии с jQuery

Тип запроса («POST» или «GET»), по умолчанию «GET». Примечание: Другое Методы HTTP-запроса, такие как PUT и УДАЛИТЬ, также можно использовать здесь, но они не поддерживаются всеми браузеры.

http://docs.jquery.com/Ajax/jQuery.ajax#options

Хотя я не совсем понял ваш вопрос. У вас есть проблемы с PUT и POST или просто POST? Работает ли GET нормально?

Одна ошибка, которую я заметил, была ваши данные, заметьте, я добавил их без кавычек.

$.ajax({
     type: "PUT",
     dataType: "json",
     url: "http://localhost:1045/Service.svc/?format=json",
     data: { Value: "testvalue" }
});
0 голосов
/ 02 июня 2009

Глаголы PUT и DELETE не включены на всех серверах. Вам нужно поместить эти глаголы в заголовок X-HTTP-Method-Override. Valeu берется из заголовка и заменяется обычным POST jsut перед обработкой запроса.

Плагин jQuery jREST может помочь вам в этом. Если вы используете WCF, вам также понадобится реализовать RequestInterceptor (для получения подробных сведений найдите XHttpMethodOverrideInterceptor).

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