1. web.config里需要配置2个地方
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpHandlers>
在<system.web></system.web>之间加入
<webServices>
<protocols>
<add name="HttpPost" />
<add name="HttpGet" />
</protocols>
</webServices>
2. 使用Jsonp进行跨域调用
<script src="jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: "get",
url: "http://localhost:2579/Services/ShopCart.asmx/Test1",
async: false,
contentType: "application/json",
dataType: "jsonp",
data: "DiMain=test",
//data: "{DiMain:'test'}",
success: mySuccess,
error: myError
});
});
function mySuccess(res) {
alert(res.result);
}
function myError(a, b, c) {
alert(b);
}
</script>
3. asmx文件
[WebMethod]
public void Test1(string DiMain)
{
//return CmnProc.getString(HttpContext.Current.Request["callback"]) + "({d:\"" + DiMain + "\"})";
HttpContext.Current.Response.Write(CmnProc.getString(HttpContext.Current.Request["callback"]) + "({result:\"" + DiMain + "\"})");
}