【问题标题】:"object XMLHttpRequest" error from jQuery ajax call to AJAX-enabled WCF service从 jQuery ajax 调用到启用 AJAX 的 WCF 服务的“对象 XMLHttpRequest”错误
【发布时间】:2012-01-13 02:37:43
【问题描述】:

我根据 MSDN 教程创建了一个简单的支持 AJAX 的 WCF 服务

[ServiceContract(Namespace = "AjaxWcf")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class AjaxWcf
{

    [OperationContract]
    public string AssessString(string input)
    {
        if (input.Contains("1"))
            return "true";

        return "false";
    }

当我生成 js 代理并使用 ASP.NET AJAX 库调用时,它完全可以工作。

但是,当我切换到 jQuery 进行 ajax() 调用时,它会收到 [object XMLHttpRequest] 错误

$.ajax({ url: "AjaxWcf.svc/AjaxWcf/AssessString",
    type: "POST",
    dataType: "text",
    processData: false,
    data: { input: inputValue },
    error: 
    function (msg) { $("#serviceResponse").html(msg.toString()); },
    success: function (response)
    { $("#serviceResponse").html(response); }
    });

我已经阅读了有关如何处理该错误以及更改错误委托以进一步了解问题的建议

function (xmlHttpRequest, textStatus, errorThrown) {
    if (xmlHttpRequest.readyState == 0 || xmlHttpRequest.status == 0)
        return;  // it's not really an error 
    else
    $("#serviceResponse").html(errorThrown);
    },

然后导致 IE 阻塞

Microsoft JScript 运行时错误:由于错误 c00c023f 无法完成操作。

显然这是一个仅限 IE9 的问题,但在 Google Chrome 中对此进行测试仍然没有产生任何 Web 服务调用(断点永远不会被命中)。如果我使用回到旧的错误委托,同样的 [object XMLHttpRequest] 问题。我有点惊讶于缺少讨论使用 jQuery 到 WCF 服务的简单 POST 调用的材料,不知道缺少什么?

注意:这是使用 jQuery 1.4.1,但据我所知,使用 1.7.1 仍然没有调用 WCF 服务。

【问题讨论】:

    标签: jquery ajax wcf


    【解决方案1】:

    由于目前还没有完全理解的原因,jQuery AJAX 到 WCF 服务似乎应该使用 JSON 数据类型进行。

    $.ajax({ url: "AjaxWcf.svc/AssessString",
        type: "POST",
        dataType: "json",
        contentType: "application/json",
        processData: false,
        data: postData,
        error: function (msg)
        { alert(msg.responseText); },
        success: function (response)
        { $("#serviceResponse").html(response.d); }
    });
    

    通过这种方式,浏览器能够发出请求而不会遇到错误并到达服务端点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-29
      • 1970-01-01
      • 2014-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      相关资源
      最近更新 更多