有人能发现这个实现的问题吗?我可以在浏览器中打开它并且它可以工作,但是来自客户端的调用(同时使用jquery和asp.net ajax失败)
服务合约
[OperationContract(Name = "GetTestString")]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json
)]
string GetTestString();
Run Code Online (Sandbox Code Playgroud)
在Web.config和其他绑定之间,我有一个webHttp绑定
<endpoint address="ajax" binding="webHttpBinding" contract="TestService" behaviorConfiguration="AjaxBehavior" />
Run Code Online (Sandbox Code Playgroud)
终点行为
<endpointBehaviors>
<behavior name="AjaxBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
</behaviors>
Run Code Online (Sandbox Code Playgroud)
Svc文件
<%@ ServiceHost Service="TestService" %>
Run Code Online (Sandbox Code Playgroud)
客户
var serviceUrl = "http://127.0.0.1/Test.svc/ajax/";
var proxy = new ServiceProxy(serviceUrl);
Run Code Online (Sandbox Code Playgroud)
我正在使用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
Run Code Online (Sandbox Code Playgroud)
注意type: "POST"那里 - 你的需要"GET".我假设你从你发布的链接中获取了你的JQuery,因为405状态表明你的调用代码是错误的,而不是服务.
| 归档时间: |
|
| 查看次数: |
19171 次 |
| 最近记录: |