-1

在这里我以 json 格式提供输入。但我没有得到输出。任何人都可以解决这个问题。

我对 jsonp 有一些疑问:

1)我有一个疑问,为了使用jsonp调用远程Web服务,我们是否必须以json格式或查询字符串格式发送数据。

2)在这里,如果我们访问 url 并提供输入,那么我们将获得 xml 格式的 o/p。所以我只想知道 jsonp 是否不适用于将 xml 作为输出的 web 服务。

 <html xmlns="http://www.w3.org/1999/xhtml">
  <head runat="server">
<title></title>
<script src="Scripts/jquery-1.7.min.js" type="text/javascript"></script>
<script type="text/javascript">
function myQuerySuggestions() {
    var searchText = document.getElementById('txtsearch').value;
                searchText = "'" + searchText + "'";
                var jasonData = "{" + 'Celsius:' + searchText + "}";
    $.ajax({
        url: "http://www.w3schools.com/webservices/tempconvert.asmx/CelsiusToFahrenheit",
        dataType: "jsonp",
        crossDomain: true,            
        data:jasonData,
        jsonpCallback: blah,
        contentType: "application/json; charset=utf-8",
        success: function (data, status) {
            alert(status+" status");
        },
        error: function () { alert("error"); }
    });

}
function blah(data) {
   alert("called");
   alert(data);
   // var result = (typeof data.d) == 'string' ? eval('(' + data.d + ')') : data.d;
   // $('#summary').html('<p>All new content. <em>You bet!</em></p>');
   // $('#summary').html(result);
}

</script>
</head>
<body>
<form id="form1" runat="server">
 <div>
<label for="txtsearch">
    Enter country:
</label>
<input type="text" id="txtsearch" size="43" style="font-size: 12px; font-weight: bold;" />
<br />
<asp:Button ID="btn" runat="server" Text="Submit" OnClientClick="myQuerySuggestions();return false;" />
<div id="summary" runat="server"></div>
</div>
 </form>
</body>
    </html>
4

2 回答 2

0

无论您调用什么服务,都应该返回 JSONP 以供 Ajax 调用使用dataType: "jsonp"

XML 响应不是 JSONP 响应 - 没有从一个到另一个的神奇转换。

于 2013-01-09T05:49:05.990 回答
0

编辑了程序代码..此代码工作正常。但我正在调用的服务不会为 Ajax 调用返回 JSONP。因此此代码的输出将是未定义的。

于 2013-01-10T06:04:42.073 回答