如何解决AJAX POST到WCF Web配置需要另一组眼睛/头脑
由于某种原因,我无法将非常简单的AJAX发布到我的Web服务(svc)上运行。 我确定这是我的web.config的问题,但我尝试了所有可以在网上找到的内容。
在“ MyService.svc”中使用
find: missing argument to `-exec
DoWork仅返回一个值,而Ajax成功。但是,如果我将参数传递给DoWork(字符串测试) Ajax返回错误。错误的请求。
我的ajax是:
[OperationContract]
[WebInvoke(Method ="POST",RequestFormat = Webmessageformat.Json,ResponseFormat =Webmessageformat.Json,BodyStyle =WebMessageBodyStyle.Wrapped)]
public string DoWork()
{
string result = "did it";
//result = test;
return (new JavaScriptSerializer().Serialize(result)); ;
}
这是在我的web.config中:
function Dotest() {
testData = { "test": "Hello" };
var jsonData = JSON.stringify(testData);
var POSTURL = "MyService.svc/DoWork";
//alert(jsonData);
//alert(POSTURL);
$.ajax({
type: "POST",url: POSTURL,datatype: "json",data: jsonData,ContentType: "application/json; charset=utf-8",success: function (result) {
alert("success: " + result.d);
},error: function (xhr,status,error) {
alert("Opps: " + xhr + " " + status + " " + error);
}
})
}
});
对于这个本来就很简单的程序,我需要另一组眼神。谢谢
解决方法
“错误请求”通常是请求格式中的错误。您可以使用WCF中的帮助文档来查看请求格式。如果要启用帮助文档,则需要将WebMessageBodyStyle更改为裸色:
[WebInvoke(Method = "POST",RequestFormat = WebMessageFormat.Json,ResponseFormat = WebMessageFormat.Json,BodyStyle =WebMessageBodyStyle.Bare)]
然后在配置文件中启用帮助文档:
<endpointBehaviors>
<behavior name="ESEndPointBehavior">
<webHttp helpEnabled="true"/>
</behavior>
</endpointBehaviors>
在浏览器中查看请求的格式,您需要以其格式发送数据。
,我删除了我的修订版本中多余的
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。