【问题标题】:WCF Returns Result but Javascript gives ErrorWCF 返回结果但 Javascript 给出错误
【发布时间】:2014-09-10 02:29:05
【问题描述】:

我正在创建一个对 WCF 服务的简单 Javascript 调用,脚本调用该服务后,它会返回调用错误。通过 Fiddler 调用 WCF 服务虽然返回了正确的结果。所以我再次尝试在运行 Fiddler 的情况下运行脚本来捕获数据包。脚本似乎没有将结果识别为有效结果,因此提示错误,因为 Fiddler 再次捕获了正确的结果。

一些参考资料:

IWorkflowService:

[ServiceContract]
public interface IWorkflowService
{

    [OperationContract]
    [WebGet(UriTemplate="GetWorkflowDetails?instanceId={instanceId}", ResponseFormat = WebMessageFormat.Json)]
    WorkflowInstance GetWorkflowDetails(string instanceId);

}

[DataContract]
public class WorkflowInstance
{
    //properties
    [DataMember]
    public string Result {get; set;}
}

WorkflowService.cs:

public class WorkflowService : IWorkflowService
{
    public WorkflowInstance GetWorkflowDetails(string instanceId)
    {
        WorkflowInstance instance = new WorkflowInstance() { Result = instanceId };

        return instance;
    }
}

aspx 页面上的脚本:

var args = getQueryVariable("instanceId");
var url = "http://localhost:56091/WorkflowService.svc/GetWorkflowDetails?instanceId="+args;
//alert(url);
$("textArea").append(url);

$.ajax({
    type: "GET",
    url: url,
    success: function (result) {
        alert(result);
    },
    error: function (error) {
        alert("Error: " + error.responseText);
    }
});

来自 Fiddler 的原始结果:

HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Wed, 10 Sep 2014 02:15:00 GMT
X-AspNet-Version: 4.0.30319
Content-Length: 49
Cache-Control: private
Content-Type: application/json; charset=utf-8
Connection: Close

{"Result":"9b3f4bfb-27f0-4570-82ba-3719109bab76"}

【问题讨论】:

  • 当我运行脚本时,它会弹出错误:,但没有 responseText。
  • 您尝试过使用console.log() 并记录整个error 对象吗?
  • 嗨 Vivek,感谢您的建议,做日志给了我更多信息,我现在看到红色的东西,如下所示:XMLHttpRequest 无法加载 localhost:56091/WorkflowService.svc/…。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问 Origin 'localhost:5000'。
  • 更新:Chrome 开发人员现在向我显示没有错误并且调用返回状态码 200,但脚本仍在返回错误调用。

标签: c# javascript jquery json wcf


【解决方案1】:

尝试将数据类型写入 application/json 并尝试将 json 结果放入 var res=result 喜欢

var res=result
alert(res);

【讨论】:

  • 对不起,我不太明白?仍然不是很习惯 javascript。我是否将其包含在成功的功能中?
  • 是的。您必须成功添加它。也添加数据类型
  • V2,谢谢,不过加了之后好像没什么区别。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-10
  • 1970-01-01
  • 2021-05-05
相关资源
最近更新 更多