我错过了什么吗?我试图在asp.net中创建一个Web服务和使用者,使用JSON和JQuery,但我没有运气。我可以让JQuery调用该服务,并获得回复服务,但响应总是通过JQuery中的“错误”回调。当我在FireBug中查看响应时,它似乎是XML,而不是JSON。以下是我的服务和客户端的相关JQuery。任何帮助将不胜感激:
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService()]
public class ajaxService : System.Web.Services.WebService {
[WebMethod()]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string HelloWorld()
{
return "Hello World";
}
}
***********************
JQuery
***********************
$(document).ready(function()
{
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{}",
url : "ajaxService.asmx/HelloWorld",
success : function( msg ) { alert( "success " + msg.d ); },
error : function( err ) { alert( err.status + " : " + err.statusText); }
});
});
响应始终显示“OK:200”,响应内容为:
<?xml version="1.0" encoding="utf-8"?> <string xmlns="http://tempuri.org/">Hello World</string>
答案 0 :(得分:1)
实际上,我在这里找到了答案:http://forums.asp.net/p/1054378/2338982.aspx#2338982
不知道这个人找到答案的地方,但你必须将其添加到web.config:
<httpHandlers> <remove verb="*" path="*.asmx"/> <add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory" validate="false"/> </httpHandlers>