加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – WCF中的405方法不允许错误

发布时间:2020-12-16 00:10:24 所属栏目:asp.Net 来源:网络整理
导读:有人能发现这个实现的问题吗?我可以在浏览器中打开它并且它可以工作,但是来自客户端的调用(同时使用jquery和asp.net ajax失败) 服务合同 [OperationContract(Name = "GetTestString")][WebInvoke(Method = "GET",ResponseFormat = WebMessageFormat.Json )]
有人能发现这个实现的问题吗?我可以在浏览器中打开它并且它可以工作,但是来自客户端的调用(同时使用jquery和asp.net ajax失败)

服务合同

[OperationContract(Name = "GetTestString")]
[WebInvoke(Method = "GET",ResponseFormat = WebMessageFormat.Json
   )]
string GetTestString();

在Web.config和其他绑定之间,我有一个webHttp绑定

<endpoint address="ajax" binding="webHttpBinding" contract="TestService" behaviorConfiguration="AjaxBehavior" />

终点行为

<endpointBehaviors>
    <behavior name="AjaxBehavior">
      <enableWebScript/>
    </behavior>
  </endpointBehaviors>
</behaviors>

Svc文件

<%@ ServiceHost Service="TestService" %>

客户

var serviceUrl = "http://127.0.0.1/Test.svc/ajax/";
var proxy = new ServiceProxy(serviceUrl);

然后我在http://www.west-wind.com/weblog/posts/324917.aspx中使用该方法
打电话给服务

解决方法

链接上的示例使用Http POST,而不是Http GET.那是“不允许的方法” – 你需要改变代码来代替GET.

您发布的链接是您的客户端代码的源代码具有以下块:

$.ajax( { 
                url: url,data: json,type: "POST",processData: false,contentType: "application/json",timeout: 10000,dataType: "text",// not "json" we'll parse

注意类型:“POST”在那里 – 你的需要是“GET”.我假设你从你发布的链接中获取了你的JQuery,因为405状态表明你的调用代码是错误的,而不是服务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读