私は、ある Web サイトが Windows フォーム アプリケーションにコマンドを送信する大学向けのプロジェクトを行っています。このアプリケーションは、シリアル ポートへのアクセスとコマンドの送受信を担当します。
Web サイトと Windows フォーム アプリケーション間の通信には、Web Api を使用しましたが、公開後に試聴したところ、localhost が C# WebSite であることがわかりました。私の Windows Forms アプリケーションではなく、Net 自身のサイトです。
Web Api への呼び出しを、コントローラーではなく Ajax を直接使用するように変更しました。私が見つけた例では、JSONP を使用していることがわかりましたが、結果を読み取って自分の Web サイトで使用することはできません。
Chrome で表示される呼び出しコードと戻り値は次のとおりです。
function cmdLocal() {
$.ajax({
type: "GET",
dataType: "jsonp",
url: "http://local host:8089/api/gps/",
jsonpCallback: "cmdTorre",
jsonp: "cmdTorre"
});
}
function cmdTorre(data) {
alert(data);
}
応答ヘッダー
Content-Length:10
Content-Type:application/json; charset=utf-8
Date:Tue, 10 Jun 2014 11:18:30 GMT
Server:Microsoft-HTTPAPI/2.0
応答
No Properties
Windows フォーム API コントローラー
namespace TCCWindows.Lib
{
public class GPSController : ApiController
{
[HttpGet]
public string Posicao()
{
var coordenada = TCCWindows.FormPrincipal.PegarCoordenadas();
return coordenada.Latitude + "|" + coordenada.Longitude + "|" + coordenada.Altitude;
}
}
}