3

以下のサービススローJQueryを使用したい: http ://www.webservicex.net/globalweather.asmx/GetCitiesByCountry しかし、エラー関数のみを実行するので、以下を試しました:

        function serviceCall() {
        var txtInput = $("#txtInput").val();
        var webMethod = 'http://www.webservicex.net/globalweather.asmx/GetCitiesByCountry';
        var datap = {"CountryName":JSON.stringify("Italy")}; 

        $("#divResult").html('loading...');

        $.ajax({
            type: "POST",
            url: webMethod,
            data: datap,// { "CountryName" : JSON.stringify("Italy")},
            contentType: "application/json; charset=utf-8",
            dataType: "jsonp", //for Firefox change this to "jsonp"
            success: function (response) {
                alert("reached success");
                $("#divResult").html(response.d);
            },
            error: function (e) {
                $("#divResult").html("Unavailable: " + txtInput);
            }
        });
    }

SO I receive 利用不可: イタリア

以下はフルページのコードです:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
        function serviceCall() {
        var txtInput = $("#txtInput").val();
        var webMethod = 'http://www.webservicex.net/globalweather.asmx/GetCitiesByCountry';
        var datap = {"CountryName":JSON.stringify("Italy")}; 

        $("#divResult").html('loading...');

        $.ajax({
            type: "POST",
            url: webMethod,
            data: datap,// { "CountryName" : JSON.stringify("Italy")},
            contentType: "application/json; charset=utf-8",
            dataType: "jsonp", //for Firefox change this to "jsonp"
            success: function (response) {
                alert("reached success");
                $("#divResult").html(response.d);
            },
            error: function (e) {
                $("#divResult").html("Unavailable: " + txtInput);
            }
        });
    }
</script>

<title></title>
</head>
<body>
<form id="form1" runat="server">
    <input type="text" id="txtInput" value="Italy"/>
    <br />
     <div style="width: 100px; height: 30px; background-color: yellow;" onclick="serviceCall();">
    Click me</div>
<div id="divResult" runat="server">

</div>
</form>
</body>
</html>

それを修正するための助けはありますか?

4

2 に答える 2

2

ここでいくつかの間違いを見ることができます:

  • dataTypeはjsonpではなくjsonでなければなりません
  • ペイロード ( dataの値) は、完全にシリアル化された json-object でなければなりません
  • あなたの WebMethod はScriptMethodですか?

しかし、何が間違っているのか正確にはわかりません。サーバーからのエラー メッセージを確認する必要があります。

于 2013-11-06T12:30:16.160 に答える
0

次の例を使用して、他の場所から asmx メソッドと任意の Web メソッドを呼び出します。

    $.ajax({
            type: 'POST',
            contentType: "application/json; charset=utf-8",
            url: 'PageName.aspx/SaveData',
            data: "{'radio':'" + input 1+ "', 'min':'" + input 2 + "', 'sec':'" + input 3 + "'}",
            async: false,
            success: function (response) {
            },
            error: function ()
            { console.log('there is some error'); }
        });
于 2013-12-20T07:40:36.267 に答える