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>
如果我错了,请纠正我,您有两个应用程序:
- localhost:99-wcf服务
- localhost:1110-调用wcf服务的web应用程序
由于端口不同,这违反了ajax请求的"同源策略"。
这里有关于如何将CORS头添加到WCF服务的说明:在WCF服务上启用CORS。Get-HTTP 405:方法不允许