我在一个HTML页面上运行Ajax,该页面应该调用Web服务,并且ajax调用不起作用,我根本不相信它甚至会进入Web服务。
问题在于:当我单击按钮时,我收到textStatus的错误,而没有错误提示。本地主机在我的VS 2013 IDE中运行,带有断点,它永远不会到达那里。项目的性质决定了我使用HTML页面和JQuery将收集的数据传递给Web服务以管理数据。但是,它好像它从未运行,我能找到的每个参考都说这段代码是正确的。我关心的两件事是使用JSON来提供数据契约的参数。如果没有将它转换为数据协定类的话,它是如何工作的。我也尝试了很多方法来传递JSON,似乎没有任何方法可以改变我的命运。如果我可以生成一个错误来调试,那至少会帮助我指出正确的方向,但是我得到了nada ......事情是我尝试过这个过程使用一个动作设置为ashx页面的表单工作,但这似乎更像是一个黑客,因为我将不得不刷回一些东西回到调用html页面说你的数据已经提交。另外,我认为Jquery Ajax是一种更清洁,更优雅的解决方案。这个Web服务中有几种方法已经可以用于其他项目接受和管理他们的数据,我想扩展它以包含html页面数据......谁能看到我在哪里出错?非常感谢...我在过去的2天里一直被这个问题困住了,我不得不继续前进。
代码如下:
$(document).ready(function () {
// alert("running inside");
var webServiceURL = 'http://localhost:50350/DBMgr.svc/updateData';
var data = "{FirstName:'name',LastName:'surname'}";
alert(data);
$("input[id='btnSubmitLead']").click(function () {
$.ajax({
type: "POST",
url: webServiceURL,
data: data,
dataType: "json",
success: function (results) {
alert("Your information has been sent, thank you... ");
},
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus +"-"+ errorThrown);
alert("Your information has not been sent ");
}
});
});
我的WCF服务:
public LeadData updateData(LeadData loadData)
{
LeadData updateok = new LeadData();
if (loadData.FirstName.Length > 0)
{
updateok.FirstName = "It has";
updateok.LastName = "Been found";
}
else
{
updateok.FirstName = "Name";
updateok.LastName = "Not Found";
}
return updateok;
}
,声明是:
[OperationContract]
[WebInvoke(Method="POST", RequestFormat=WebMessageFormat.Json, ResponseFormat=WebMessageFormat.Json)]
LeadData updateData(LeadData loadData);
[DataContract]
public class LeadData
{
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
}
哦,是的,HTML包括:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type=""></script>