【发布时间】: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