1

ここでは、Webサービスを作成し、データからデータを取得するためのパブリックURLを指定しました。Office365開発者プレビュー(NAPA)のdefault.htmページに次のコードを記述しました。

<!DOCTYPE html>
 <html>
 <head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<title>DemoApplication</title>
<link rel="stylesheet" type="text/css" href="../Content/Office.css" />
<!-- Add your CSS styles to the following file -->
<link rel="stylesheet" type="text/css" href="../Content/App.css" />
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></script>
<script src="https://appsforoffice.microsoft.com/lib/1.0/hosted/office.js"></script>
<!-- Add your JavaScript to the following file -->
<script src="../Scripts/App.js"></script>
 </head>
 <body onload="GetData()">
    <select id="CbxArea" style="width: 200px">
    <option>Select Area</option>
    </select>
    <input type="button" value="submit" id="btnsubmit"/>        
</div>
  </body>
 </html>

休閑コードはapp.jsファイルに書かれています

Office.initialize = function (reason) {    
};
function GetArea(){
var ddlArea = $("#CbxArea");
        $.ajax({
            type: "POST",
            url: "http://192.168.3.252:8081/HaraveerWCF/ExcelDataService.asmx/GetAreaNames",
            contentType: "application/json; charset=utf-8",
            //url:"ExcelDataService.asmx/GetAreaNames",
            dataType: "json",
            success: function (data) {
            for (i = 0; i < data.d.length; i++) {
                ddlArea.append($("<option></option>").val(data.d[i].AreaName).html(data.d[i].AreaName));
                }
            },
            failure: function (msg) {
                alert(msg);
            }
        });
}

間違って書いたところ。助けてください。コード全体がオンラインのOffice365ポータルアカウントでのみ書かれていることを確認してください。VisualStudioでは書かれていません。

4

3 に答える 3

0

Office 365プレビューサイトからリモートアドレスにアクセスしようとしているときに、JavaScriptのクロスドメインデータアクセスの問題が発生した可能性があります。リモートアドレスへのリクエストのリターンタイプがJSONPの場合、クロスドメインデータアクセスの問題をオーバーライドできる可能性があります。

ブラウザの開発者ツール(F12キーボードショートカットで起動し、[ネットワーク]タブの下を確認)またはFirefox Firebugで、リモートサーバーのURLがJSONPデータを返すかどうかを確認します。

于 2013-02-20T10:29:34.877 に答える
0

あなたは少しやりました、私たちはoverrideオプションhtmlに言うことができます。各オプションの値とテキストを配置します。

for (i = 0; i < data.d.length; i++) {
  ddlArea.append($("<option></option>").val(data.d[i].AreaName)
                                       .text(data.d[i].AreaName));
}

あなたはこれを達成することができます$.each()

$.each(data.d, function(i, v){
  ddlArea.append("<option></option>").val(v[i].AreaName).text(v[i].AreaName);
});
于 2013-02-01T11:08:00.647 に答える
0

jQuery 1.4以降では、次のことができます。

for (i = 0; i < data.d.length; i++) {
   ddlArea.append($('<option/>', { value : data.d[i].AreaName }).text(data.d[i].AreaName);
}    
于 2013-02-01T10:17:28.167 に答える