WCF服务JSON使用ASP.NET发布数据

本文关键字:布数据 数据 NET 服务 JSON 使用 ASP WCF | 更新日期: 2023-09-27 18:28:56

在ASP.NET中使用JSON使用POST时出现问题。请在使用POST时检查我的代码。javascript代码有什么问题吗?

准确错误:

未能加载资源:服务器响应,状态为405(不允许使用方法)localhost:99/Service1.svc/api/updtelogin.json XMLHttpRequest无法加载localhost:99/Service1.svc/api/updtelogin.json。否请求的上存在"Access Control Allow Origin"标头资源因此,不允许使用源"localhost:1110"通道响应的HTTP状态代码为405。

I服务

    [OperationContract]
    [WebInvoke(Method = "POST",
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "api/updtelogin.json")]
    UpdateUser updteUser(RequestData rData);

请求数据

[DataContract(Namespace = "")]
public class RequestData
{
    [DataMember]
    public string details { get; set; }
}

服务.svc

    private UpdateUser updateuser(RequestData rData)
    {
        return updteUser(rData);
    }
    public UpdateUser updteUser(RequestData rData)
    {
        var data = rData.details.Split('|');            
    }

这是我在ASP.NET 中的javascript

  <script type="text/javascript">
    $("#btnChange").live("click", function () {
        var test = {};
        test.uname = "admin";
        $.ajax({
            type: 'POST',
            url: 'http://localhost:99/Service1.svc/api/updtelogin.json',
            data: "{rData:" + JSON.stringify(test) + "}",
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (r) {
                alert(r.d.uname);
            }
        });
    });
</script>

WCF服务JSON使用ASP.NET发布数据

如果我错了,请纠正我,您有两个应用程序:

  • localhost:99-wcf服务
  • localhost:1110-调用wcf服务的web应用程序

由于端口不同,这违反了ajax请求的"同源策略"。

这里有关于如何将CORS头添加到WCF服务的说明:在WCF服务上启用CORS。Get-HTTP 405:方法不允许