我下面沒有任何成功的各種網上的例子。我只是試圖創建一個將值傳遞給Web服務調用的初始示例。值傳遞到jQuery的web服務電話嗎?
我在做什麼錯?
我可以HttpHandlers的東西......這個簡單的不應該是這樣的辛苦很容易地做到這一點?
更新:
它失敗的原因是因爲「contentType」屬性丟失。這是在following answer概述。
這裏是我不斷收到錯誤:
System.InvalidOperationException: Missing parameter: key.\r\n at System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection collection)\r\n at System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request)\r\n at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()\r\n at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
這是HTML:
<script type="text/javascript">
var url = '<%=ResolveUrl("~/Services/ProjectDialog.asmx/TryThis")%>';
function callWebService() {
jQuery.ajax({
cache: false,
type: 'POST',
complete: onComplete,
data: '{ "key": 42 }',
dataType: 'application/json; charset=utf-8',
error: onError,
success: onSuccess,
url: url
});
}
function onComplete(status, xmlHttpRequest) {
var stop = "";
}
function onError(xmlHttpRequest, status, error) {
var stop = "";
}
function onSuccess(data, status, xmlHttpRequest) {
var stop = "";
}
jQuery(document).ready(function() {
});
</script>
<input type="button" value="Run Web Service" onclick="callWebService();" />
這是Web服務:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Serialization;
namespace My.Services
{
/// <summary>
/// Summary description for ProjectDialog
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class ProjectDialog : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string TryThis(Int32 key)
{
return key.ToString();
}
}
}
感謝您的幫助傢伙...我會讓人們知道什麼做和不做評論。 – 2011-04-05 12:59:10