2014-10-01 2 views
0

У меня уже несколько служб данных ADO.NET работает, и теперь они будут потреблять их через веб-клиент через jQuery. Когда я пытаюсь сделать следующее, обработчик ошибок всегда вызывается:Потребляйте .NET DataService с jQuery

$.ajax(
    { 
     type: "GET", 
     url: "Service.svc/Customers()", 
     contentType: "application/atom+xml;type=feed;charset=utf-8", 
     dataType: "xml", 
     xhrFields: { withCredentials: true }, 
     error: function (jqXHR, textStatus, errorThrown) { alert(jqXHR.response + textStatus + errorThrown); }, 
     success: function (xml) { alert(xml); } 
    } 
); 

Наблюдение скрипача, данные корректно возвращаются в формате XML, но обработчик ошибок всегда вызывается. Может ли jQuery не анализировать ответ приложения/atom + xml?

ответ

0

Вот Ajax вызовов для JavaScript

$.ajax({ 
    url: "Login.aspx/Logout", 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (o) { 
     window.location.href = "Login.aspx"; 
    }, 
    error: function (o) { 
     logoutSession(); 
    } 
}); 

Метод стороне сервера на любой странице ASPX.

[WebMethod] 
public static string Logout() 
{ 
    HttpContext.Current.Session["User"] = null; 
    return "Success"; 
} 

Когда Вызов сервиса WSDL

$.ajax({ 
    url: "Service.svc/Customers", 
    type: "POST", 
    dataType: "xml", 
    data: soapMessage, 
    processData: false, 
    contentType: "text/xml; charset=\"utf-8\"", 
    success: function (xml) { alert(xml); }, 
    error: function (jqXHR, textStatus, errorThrown) { alert(jqXHR.response + textStatus + errorThrown); } 
}); 

Переменная soapMessage будет содержать код, который выглядит примерно так:

var soapMessage = 
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">\ 
<soap:Body> \ 
<SaveProduct xmlns="http://sh.inobido.com/"> \ 
<productID>' + productID + '</productID> \ 
<productName>' + productName + '</productName> \ 
<manufactureDate>' + manufactureDate + '</manufactureDate> \ 
</SaveProduct> \ 
</soap:Body> \ 
</soap:Envelope>'; 

источник http://openlandscape.net/2009/09/25/call-soap-xm-web-services-with-jquery-ajax/

выше источник дает вам шаг пошаговые инструкции, как, если источник не работает, Google «как делать мыльные вызовы от ajax», будет несколько полезных ссылок на этот точный запрос

+0

Также используйте 'SoapUI' для получения правильного тела XML для отправки на сервер' SoapUI' является отличный инструмент для тестирования веб-сервисов и других материалов, связанных с мылом – Pierre

0

Вы можете попробовать использовать datajs который является Java-библиотека для различных версий OData http://datajs.codeplex.com/

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