0

Microsoft の Metro アプリ用の新しい HTMl5 フレームワークを使用してアプリを構築しています。GET データの送信に使用するフォームを作成しました。問題は、アプリの [クエリの実行] (送信) ボタンをクリックすると、ブラウザー ウィンドウが開くことです。ブラウザー ウィンドウを開かずに GET メソッドでデータを送信する方法をいくつか教えてください。

そのためにjQueryを使用してみましたが、ほとんど成果がありませんでした。「jQuery」が定義されていないというメッセージがスローされます。

使用できる HTML はありますか、それとも、default.js に追加できるものはありますか?

要求に応じて、私が使用している jQuery:

jQuery(document).ready(function () {

jQuery('.ajaxform').submit(function () {

    $.ajax({
        url: $(this).attr('action'),
        type: $(this).attr('method'),
        dataType: 'json',
        data: $(this).serialize(),
        success: function (data) {
            for (var id in data) {
                jQuery('#' + id).html(data[id]);
            }
        }
    });

    return false;
});

});
4

2 に答える 2

0

フォームから値を取得し、オブジェクトに保存し、javascript 関数を使用してエンコードし、xhr を使用します。

jsを使用してフォームの値を取得します。

    var b=document.getElementById(textboxname).value;
    var params={
    parameter:b,
    }

パラメータをエンコードするには、次の JavaScript 関数を使用できます。

  function formatParams(y) {
    var queryStr = "";

    for (var propertyName in y) {
        var val = y[propertyName];
        queryStr += propertyName + "=" + encodeURI(val) + "&";
    }

    return queryStr.slice(0, -1);
}

WinJS.xhr を使用して Web サービスを呼び出す

    WinJS.xhr({
        type: "get/post",
        url: "your URL",
        data: formatParams(params),
        headers: { "Content-type": "application/x-www-form-urlencoded" }
    }).done(function (response) {
        var json = JSON.parse(response.responseText);

       //process accordingly
        }

Web サービスから JSON 応答を取得していると仮定します。

于 2013-08-22T07:27:14.157 に答える
0

ここでは、jQuery の外部スクリプトを参照していると思います。winjs はブラウザー内の一般的な Web アプリとは異なるセキュリティ制限の下で実行されるため、スクリプトはローカルにある必要があります。

既に jquery を使用しているため (Win8/winjs と互換性のあるバージョン 2.0 以降を想定)、プロジェクトに jquery LOCALLY への参照が含まれていることを確認し、外部 Web サイトからではなく、jQuery の代わりに $(document) を使用できます。 (資料)。

つまり、 <script src="/scripts/jquery-2.0.0.js" /> (またはバージョンが何であれ) で、ローカルにファイルがあることを確認してください。Visual Studio で Tools->Library Package Manager->Package Manager Consoleに移動し、 install-package jqueryと入力 するだけです。

于 2013-08-23T00:24:44.970 に答える