Postar JSON entre domínios no ASP.NET com jQuery

Tem um tipo de problema complicado.

Estou trabalhando em um projeto em que precisamos permitir impressões de recibos quando os usuários fazem check-out em nosso site em um quiosque. Por motivos relacionados a drivers e formatação, estou usando a automação COM com o Word para manipular a impressão dos recibos. Eu envolvi esse código em um serviço da web que é executado em uma máquina local.

O plano era colocar uma simples chamada ajax do jQuery na página html para o url da máquina local executando o serviço da web. Essa chamada ajax contém um objeto json do pedido, que é desserializado pelo serviço da Web e impresso. Funciona bem se eu usar localhost, no entanto, em produção vou entrar em conflito com nenhuma regra de chamadas ajax de domínio cruzado.

Um proxy não funcionará porque o código em execução no site não pode contatar o serviço da Web local que está executando o serviço de impressão. Depois de bisbilhotar na web, descobri que usar o JSONP pode ser uma solução para isso, mas não consigo descobrir como fazer isso funcionar. A maioria dos tutoriais presume que você está tentando obter alguns dados remotos em vez de simplesmente postar dados. O serviço da web de impressão retorna vazio.

Como configuro meu serviço da web (asmx) para trabalhar com o JSONP e como seria o código do meu jQuery? Atualmente, parece algo como isto:

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); }
    });
}

Qualquer alternativa mais simples ao JSONP, ou qualquer outra solução possível que eu não tenha considerado, também seria útil.

questionAnswers(1)

yourAnswerToTheQuestion