从jQuery调用web服务返回“No Transport”错误

时间:2011-10-10 21:31:23

标签: json web-services jquery

我有以下网络服务;

[WebMethod]
public string HelloWorld()
{
    return "Hello World";
}

我指向最新的jquery库。

 <script type="text/JavaScript" src="Scripts/jquery-1.6.4.js"></script>

我有这个jQuery方法;

$.ajax({
            type: "POST",
            url: "../Service/AFARService.asmx/HelloWorld",
            // this._baseURL + method,
            data: data,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: fnSuccess,
            error: fnError,
            crossDomain: true,
            dataFilter: function (data) {
                var response;

                if (typeof (JSON) !== "undefined" && typeof (JSON.parse) === "function")
                    response = JSON.parse(data);
                else
                    response = val("(" + data + ")");

                if (response.hasOwnProperty("d"))
                    return response.d;
                else
                    return response;
            }
        });

当我执行时,我收到“无传输”错误。我添加crossDomain: true仍然没有成功。

提前致谢 BB

2 个答案:

答案 0 :(得分:2)

启用跨域调用,您可以尝试

jQuery.support.cors = true;

如果这不起作用,你可以通过(JSONP):
http://www.west-wind.com/weblog/posts/2007/Jul/04/JSONP-for-crosssite-Callbacks
https://en.wikipedia.org/wiki/JSON
http://remysharp.com/2007/10/08/what-is-jsonp/

你可以关注其中任何一个

答案 1 :(得分:0)

尝试使用

 url: "AFARService.asmx/HelloWorld",



[WebMethod]
 [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public string HelloWorld()
{
    return "Hello World";
}