Есть какая-то хитрая проблема.
Я работаю над проектом, в котором нам нужно разрешить распечатку квитанции, когда пользователи проверяют наш сайт в киоске. По причинам, связанным с драйверами и форматированием, я использую автоматизацию COM с Word для распечатки квитанций. Я поместил этот код в веб-сервис, работающий на локальной машине.
План состоял в том, чтобы поместить простой jQuery-вызов ajax на странице html в URL-адрес локальной машины, на которой запущен веб-сервис. Этот ajax-вызов содержит объект порядка json, который десериализуется веб-службой и распечатывается. Работает нормально, если я использую localhost, однако в производственной среде я не буду использовать правило междоменных вызовов ajax.
Прокси-сервер не будет работать, поскольку код, запущенный на веб-сайте, не может связаться с локальной веб-службой, на которой запущена служба печати. Покопавшись в Интернете, я обнаружил, что использование JSONP может быть решением этой проблемы, но я не могу понять, как заставить его работать. В большинстве уроков предполагается, что вы пытаетесь получить некоторые удаленные данные, а не просто публикуете данные. Веб-служба печати возвращает void.
Как настроить мой веб-сервис (asmx) для работы с JSONP и как будет выглядеть мой код jQuery? В настоящее время это выглядит примерно так:
function printReceipt(data) {
$.ajax({
type: "POST",
url: "http://192.9.200.165/ContestWebService/Service1.asmx/PrintOrderReceiptJson",
data: data,
dataType: "json",
contentType: "application/json; charset=utf-8",
error: function(xhr, msg) { alert(xhr.statusText); }
});
}
Любые более простые альтернативы JSONP или любые другие возможные решения, которые я, возможно, не рассматривал, также были бы полезны.