【问题标题】:jQuery ajax cross domain post to WCF rest servicejQuery ajax 跨域发布到 WCF 休息服务
【发布时间】:2012-04-24 00:19:30
【问题描述】:

我正在尝试对 WCF 休息服务进行跨域 POST。以下是我获取请求的服务代码

[WebInvoke(UriTemplate = "", Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    public SampleItem Create(SampleItem instance)
    {

        instance.StringValue += " -success";
        return instance;
    }

在客户端我有以下 jquery ajax 调用

 var input = { "Id": 10, "StringValue": "Test Value" };

                $("#post").click(function () {
                    $.ajax({
                        type: "POST",
                        url: "http://localhost:50577/Service1/",
                        dataType: "jsonp",
                        data: JSON.stringify(input),
                        processData: false,
                        success: function(item) {
                            $("#itemId").val(item.Id);
                            $("#name").val(item.StringValue);
                        },
                        error: function(xhr) {
                            alert("error " + xhr.responseText);
                        }
                    });

当我在服务器端调试代码时,请求到达方法,但实例参数为空。在同一个项目中,我有一个跨域获取,它可以正常工作。 如果我将客户端更改为在同一个域中并将数据类型更改为 json 它工作正常。

那么跨域发布是不可能的吗?或者我还需要做些什么来让它工作。

【问题讨论】:

    标签: wcf rest jquery


    【解决方案1】:

    您回答了第一个问题,因为您可以调试服务!

    AJAX 调用的 JSON 输入格式不正确。试试这个:

    ...
    data: JSON.stringify({instance : input}),
    ...
    

    【讨论】:

      猜你喜欢
      • 2012-06-11
      • 2011-12-11
      • 2012-06-05
      • 2011-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-23
      相关资源
      最近更新 更多