为什么 405 方法不允许错误发生在 wcf 中
本文关键字:wcf 错误 方法 不允许 为什么 | 更新日期: 2023-09-27 18:36:38
这是我的类
[DataContract()]
public class Test
{
[DataMember]
public string UserName { get; set; }
}
这是我的 SVC.cs 页面函数
public string Testpost(Test T)
{
string User_name;
User_name = T.UserName;
DataUtility du = new DataUtility();
string[] Parameters = new string[2] { "@UserName", "@Result" };
string[] DbTypes = new string[2] { "varchar", "varchar" };
string[] ParameterTypes = new string[2] { "input", "Output" };
string[] values = new string[2] { User_name, "" };
string[] Lengths = new string[2] { "100", "50" };
String Praveen = du.executeNonQuerry(CommandType.StoredProcedure, "InsertTest", Parameters, DbTypes, ParameterTypes, values, Lengths);
if (Praveen == "1")
{
return "Insertion Success";
}
else
{
return "Failed Insertion";
}
}
这是我的 uri 模板
[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "/Testpost")]
string Testpost(Test T);
这是我的配置
<service name="SkyService.Customer" behaviorConfiguration="Default">
<endpoint address="" binding="webHttpBinding" contract="SkyService.ICustomer" behaviorConfiguration="webBehavior" bindingConfiguration="WCFServiceBinding"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
我通过 j 查询 ajax 访问 post 方法,就像
<script type="text/javascript">
$(function () {
//var param = {"UserName":"Praveen"};
var _Name = { "T": { "UserName": "LC" } };
$.support.cors = true;
$.ajax({
type: "POST",
url: "http://203.124.96.81/Track/Customer.svc/TestPost",
//data: {"UserName":"Praveen"},
//contentType: "application/json",
//dataType: 'jsonp',
data: JSON.stringify(_Name),
returncallback: false,
contentType: "application/json",
dataType: "jsonp",
success: function (data) {
alert(data.Text);
console.log(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
//alert(XMLHttpRequest+" "+textStatus+" "+errorThrown);
console.log(XMLHttpRequest);
console.log(textStatus);
console.log(errorThrown);
}
});
})
</script>
服务在 localhost 中获取结果并在数据库中插入数据是成功的,但是当我通过远程使用它时,会出现错误,这是不允许的方法????如何做到这一点???
我认为这是一个跨域问题。
请按照 http://www.dotnet-tricks.com/Tutorial/wcf/X8QN260412-Calling-Cross-Domain-WCF-Service-using-Jquery.html 中的说明进行操作
并尝试一下。