gpt4 book ai didi

javascript - ajax调用WCF服务(跨域)

转载 作者:行者123 更新时间:2023-11-28 09:05:25 25 4
gpt4 key购买 nike

我正在尝试使用本地地址从其他项目调用 WCF 服务。我在同一个解决方案资源管理器中有两个项目。一个项目包含服务,另一个项目是一个 Web 应用程序,我在其中使用 JavaScript 中的 Ajax 来调用 WCF 服务。以下是我的 JavaScript 代码,

function sclick() {
alert("m here");
$.ajax({
type: "POST",
url: "http://localhost:4780/Service1.svc/myfunction",
contentType: "application/json; charset=utf-8 ",
dataType: "json",
success: success,
error: fail
})

}

function success(result) {
alert(result);
//alert("Success" + result.myfunctionResult);
}

function fail(result) {
alert("Fail..... " + result.statusText + ": " + result.status);
}

流程转到成功函数,但我在结果对象中得到空值。 ajax部分的URL是我在浏览器中查看service1.svc文件得到的URL。谁能告诉我哪里错了!在同一个项目中它工作得很好。但是跨域不行。当我从其他项目调用该服务时,它返回 null。我在服务中给出了断点。断点显示正确的值,但它没有出现在我的 javascript 代码中。

最佳答案

您不应该通过常规 Web 服务调用与开箱即用的 WCF 服务进行通信,这是可能的,但会更复杂。请参阅:http://social.msdn.microsoft.com/Forums/vstudio/en-US/c896b564-7a9b-423d-a42d-d36c33c46e7d/consume-a-wcf-service-as-a-url

这是因为 WCF 具有框架使用的数据“开销”。另外,WCF 配置可能有所不同:它可以是 REST、SOAP 甚至 Tcp 或命名管道。

更简单的方法是生成 WCF 客户端: http://msdn.microsoft.com/en-us/library/ms733133.aspx

并且比从 ajax 调用客户端代理,而不是尝试直接调用服务器。

假设您正在运行 .Net Web 应用程序。否则,请参阅如何直接与服务对话。这是一个关于如何使用 Java 执行此操作的示例: http://hoonzis.blogspot.co.il/2011/07/consuming-wcf-services-with-java-client.html

最后,这里建议的另一个好答案后来被删除,那就是配置 WCF 服务以支持 REST API,如下所示: http://www.codeproject.com/Articles/128478/Consuming-WCF-REST-Services-Using-jQuery-AJAX-Call

关于javascript - ajax调用WCF服务(跨域),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17183569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com