gpt4 book ai didi

asp.net-mvc-2 - 从 jQuery 调用启用 AJAX 的 WCF 服务 - MVC 2

转载 作者:行者123 更新时间:2023-12-03 22:51:48 24 4
gpt4 key购买 nike

我已经阅读了大量关于完成此任务的文章,看起来非常简单。我创建了我的服务,非常简单(看起来像这样

[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class WeddingPhotographerService
{
// Add more operations here and mark them with [OperationContract]
[OperationContract]
public bool AddNewSkill(string name, string description)
{
IRepository<Skill> skillRepo = ObjectFactory.GetInstance<IRepository<Skill>>();

var skill = new Skill { Name = name, Description = description };
skillRepo.Save(skill);
return true;
}
}

足够简单吧,然后我在我的 View 中编写这个 jQuery 代码

$(document).ready(function () {
$("#AddSkill").click(function () {
var data = { name: $("#NewSkill").val(), description: "" };
data = JSON.stringify(data)
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "WeddingPhotographerService.svc/AddNewSkill",
data: data,
dataType: "json",
success: function () {
$('#SkillListViewContainer').load('../AccountController/GetSkillControl');
},
error: function (msg) {
$("#AddSkillError").text(msg.d);
}
});
});
});

我的 WeddingPhotographerService.svc 位于项目的根目录中,web.config 在我创建服务时添加了此内容

<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="WeddingPhotographer.WeddingPhotographerServiceAspNetAjaxBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="WeddingPhotographer.WeddingPhotographerService">
<endpoint address="" behaviorConfiguration="WeddingPhotographer.WeddingPhotographerServiceAspNetAjaxBehavior"
binding="webHttpBinding" contract="WeddingPhotographer.WeddingPhotographerService" />
</service>
</services>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
</system.serviceModel>

一切看起来都很简单,而且应该可以工作,但是当我单击 Chrome JavaScript 控制台的 AddSkill 时,会返回 404 错误,因此它根本找不到服务(我打开了控制台,因为当我点击按钮时什么也没有发生)。

我在这里遗漏了什么吗?

顺便说一句,我也尝试过这个(因为这是 web.config 文件中的名称)

url: "WeddingPhotographer.WeddingPhotographerService.svc/AddNewSkill"

我仍然收到资源未找到(404)错误

最佳答案

解决了,将 jQuery AJAX 调用中的 url 行更改为

url: "../WeddingPhotographerService.svc/AddNewSkill"

一切都很好

关于asp.net-mvc-2 - 从 jQuery 调用启用 AJAX 的 WCF 服务 - MVC 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4503201/

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